flex4 自定义效果学习
flex4默认提供了很多效果,但是很多时候我们还是要自定义效果才能满足需求
要自定义flex4的效果需要用到两个类,Animate和AnimateInstance
自定义的效果要继承自AnimateInstance,这个类用来编写实际效果运行的代码,里面必须覆盖两个方法play()和animationUpdate(),play()方法用来初始化效果的参数,然后启动效果,animationUpdate()将在效果每次更新过程中调用,这个方法运行的就是实际执行效果的代码。
另一个类继承自Animate,这个类用来自定义效果,但是实际的效果是其内部由AnimateInstance实例来决定的。
下面用一个例子说明如何实现自定义效果
首先定义一个SlideAnimateInstance继承自AnimateInstance,这个类里有两个需要注意的地方,首先是target属性,这个属性表示当前运行效果的对象,另一个是motionPaths属性,这个集合用来存储MotionPath对象,每个MotionPath对象都定义了实际效果运行过程中改变的属性和对应的值。
?接下来是SlideAnimate继承自Animate,在这个类的构造方法里需要将instanceClass赋值为自定义效果类的实例,即SlideAnimateInstance,同样要覆盖两个方法initInstance()和getAffectedProperties()
?接下来就可以在mxml中使用这个自定义的效果了
?其他效果都是类似的,重点就是在play方法中设置效果的参数,然后在animationUpdate修改对应的属性。