<?xml version="1.0" encoding="utf-8" ?> 
<screenplay xmlns="urn:screenplay">
	<text id="partial" />
	<text id="type" text="Typewriter" />
	<int id="typeLength" value="0" />
	
	<event kind="onLoad" >
		<matrix id="initialMatrix" translate="[65,100]" />
		<paint id="textPaint" textSize="36"  antiAlias="true" linearText="false" >
			<color color="lightBlue" />
		</paint>
		<apply  >
			<paint />
			<set begin="3" field="linearText" to="false" />
		</apply>
		<matrix translate="[0,60]" />
		<rect top="textPaint.ascent" width="textPaint.measureText(type.text)" 
			height="-textPaint.ascent+textPaint.descent" />
		<paint>
			<linearGradient points="[0,25,205,25]"  tileMode="mirror" >
				<matrix>
					<scale x="3" y="2" />
				</matrix>
				<color color="brown" />
				<color color="yellow" />
			</linearGradient>
		</paint>
		<add use="partial" />
		<textOnPath text="partial"  offset="220" >
			<path >
				<addOval left="0" right="160" top="-70" bottom="30" direction="cw" />
			</path>
		</textOnPath>
		<textOnPath text="partial"  offset="20" >
			<path >
				<addOval left="0" right="160" top="-50" bottom="50" direction="cw" />
			</path>
		</textOnPath>
		<apply mode="immediate" steps="type.length-1" >
			<post target="nextChar" />
			<animate field="delay" from="0.1" to="0.95" />
		</apply>
		<post target="addCaptionFade" delay="1" />
		<post target="addLineCaption" delay="1" />
		<post target="scaleInitial" delay="2" />
	</event>
	
	<event kind="user" id="nextChar" >
		<apply id="applyTypeLength" scope="typeLength" >
			<set id="incValue" field="value" to="typeLength.value + 1" />
		</apply>
		<apply id="applySlice" scope="partial">
			<set id="setSlice" field="text" to="#script:type.text.slice(0, typeLength.value)" />
		</apply>
	</event>
	
	<event kind="user" id="addCaptionFade" >
		<apply>
			<paint  > 
				<color id="captionFade" alpha="0" />
			</paint>
			<animate target="captionFade" field="alpha" from="0" to="1" dur="1" />
		</apply>
	</event>
	
	<event kind="user" id="addLineCaption" >
		<paint textSize="24" textAlign="center" > <!--  -->
			<shader  />
		</paint>
		<text text="Text" x="textPaint.measureText(type.text)/2" y="40" />
	</event>
	
	<event kind="user" id="scaleInitial" >
		<apply scope="textPaint" >
			<set field="linearText" to="true" />
		</apply>
		<apply scope="initialMatrix" >
			<animate field="scale" from="1" to=".5" dur="1"/>
			<animate field="translateX" from="65" to="130" dur="1"/>
			<animate field="translateY" from="100" to="30" dur="1"/>
		</apply>
	</event>
	
</screenplay>