<?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>