MAML 高级玩法 延时动画的另一种写法

由于变量动画的时间控制不方便使用变量,如果多个类型相同、动画相似的元素用普通写法代码量会增加很多,可以参考以下写法配合数组减少代码量。

其中#m_t为一个1000毫秒(1秒)内从0过度到1的赋值,点击按钮后通过#time-#time_flag来实现(通过设定#time-#time_flag最小值为0最大值为1000,再除以1000即为最小值为0最大值为1)。1-abs(cos(4*3.14*#m_t*#m_t))*(1-#m_t)*(1-#m_t)为模拟BounceEaseOut的缓动类型,你可以自己更改为自己想要的缓动函数类型平方、立方…

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?xml version="1.0" encoding="UTF-8"?>
<Lockscreen version="2" frameRate="60" screenWidth="1080" >
 
 
<Array count="10" indexName="aaa">
 <Var name="m_t" type="number[]" index="#aaa" expression="min(max(#time-#time_flag-100*#aaa,0),1000)/1000" size="10"/>
 <Circle x="100+100*#aaa" y="500+500*(1-abs(cos(4*3.14*#m_t[#aaa]*#m_t[#aaa]))*(1-#m_t[#aaa])*(1-#m_t[#aaa]))" r="15" fillColor="#ffffff"/>
</Array>
 
 
 
<Button w="#screen_width" h="#screen_height">
 <Triggers>
 <Trigger action="up">
 <VariableCommand name="time_flag" expression="#time"/>
 </Trigger>
 </Triggers>
</Button>
 
<Unlocker name="unlocker" alwaysShow="true" bounceInitSpeed="2000" bounceAccelation="1500" >
 <StartPoint x="0" y="0" w="#screen_width" h="#screen_height" easeType="QuintEaseOut" easeTime="800"/>
 <EndPoint x="0" y="-#screen_height-400" w="#screen_width" h="#screen_height" >
 <Path x="0" y="0" tolerance="2000">
 <Position x="0" y="0" />
 <Position x="0" y="-#screen_height" />
 </Path>
 </EndPoint>
</Unlocker>
 
 
</Lockscreen>

 

暂无评论

发表评论

电子邮件地址不会被公开。

©2015-2016 zhutidasai.com. 版权所有 京ICP备16041368号-3