Flex 常见特效
????? AnimateProperty:動畫屬性
????? Blur :模糊
????? Desolve :溶解
????? Fade :凋零
????? Glow :發(fā)光
????? Iris :瞳孔放大縮小
????? Move :移動
????? Pause :定格
????? Resize :改變大小
????? Rotate :旋轉(zhuǎn)
????? SoundEffect :音效
????? (WipeLeft, WipeRight, WipeUp, WipeDown) :擦拭
????? Zoom :放大縮小
????? Sequence:順序播放組合
????? Parallel:同時播放組合
常見觸發(fā)動畫效果方式:
????? AddedEffect :加入容器
????? creationCompleteEffect :創(chuàng)建完成
????? focusInEffect :獲得鍵盤輸入
????? focusOutEffect :失去鍵盤輸入
????? hideEffect :visable屬性設(shè)置為false
????? mouseDownEffect :鼠標(biāo)按下
????? mouseUpEffect :鼠標(biāo)按起
????? moveEffect :被拖動
????? resizeEffect :重新設(shè)定大小
????? removedEffect :被移除
????? rollOutEffect :鼠標(biāo)移到控件外
????? rollOverEffect :鼠標(biāo)移到控件上
????? showEffect :visable屬性設(shè)置為true
?
部分示例:
?????
1:glow(發(fā)光)
代碼:
<mx:Glow id="glow" duration="1000"
??????? alphaFrom="0.6" alphaTo="0.2"
??????? blurXFrom="0.0" blurXTo="50.0"
??????? blurYFrom="0.0" blurYTo="50.0"
??????? color="0xffffff"/>
?
duratuion 是特效的時間 1000 毫秒
alphaFrom 是透明度從 0.6 開始
alphaTo 是透明度到 0.2
blurXFrom 是X放向的模糊開始位置(相對于控件的)
blurXTo 是X放向的模糊結(jié)束位置(相對于控件的)
blurYFrom 是Y放向的模糊開始位置(相對于控件的)
blurYTo 是Y放向的模糊結(jié)束位置(相對于控件的)
color 是發(fā)光的顏色
?????
2:Sequence (順序) Bounce(彈跳)
代碼:
import mx.effects.easing.*;
<mx:Sequence id="movePauseMove">
??????? <mx:Move yBy="-150" duration="1000" easingFunction="Bounce.easeOut"/>
??????? <mx:Move yBy="150" duration="1000" easingFunction="Bounce.easeIn"/>
??? </mx:Sequence>
yBy 是作用在Y方向。
duratuion 是特效的時間 1000 毫秒
easingFunction 是松開動作
Bounce.easeOut 是跳出的動作
Bounce.easeIn 是跳回的動作
?
作用到控件:
<mx:Image source="../assets/zh_cn_ptn_090722.png"?
mouseDownEffect="{movePauseMove}"
id="image4"/>
?
自定義效果:
????? 每個效果都是由兩個元素組成的,分別是EffectInstance效果實(shí)例與Effect類工廠。所以在自定義效果的時候,也要成對的創(chuàng)建這兩個類的子類,并分別繼承自EffectInstance類和Effect類。如:
?
public class TestEffect extends Effect { public var alp:Number; public var col:uint; public function TestEffect(target:Object=null) { super(target); instanceClass = TestInstance; } override protected function initInstance(instance:IEffectInstance):void{ super.initInstance(instance); TestInstance(instance).col = this.col; TestInstance(instance).alp = this.alp; } } public class TestInstance extends EffectInstance { public var alp:Number; public var col:uint; public function TestInstance(target:Object) { super(target); } override public function play():void{ super.play(); (target as DisplayObject).alpha = this.alp; var shape:FlexShape = new FlexShape(); shape.graphics.beginFill(col,1.0); shape.graphics.drawRect(0,0,(target as DisplayObject).width,(target as DisplayObject).height); shape.graphics.endFill(); var uiComp:UIComponent = new UIComponent(); uiComp.addChild(shape); UIComponent(target).addChild(uiComp); } }?
????? 1)當(dāng)想手動播放某效果時,調(diào)用效果實(shí)例的play方法即可,為了穩(wěn)定,一般在調(diào)用play方法前先調(diào)用一下end,來保證先前效果已結(jié)束。
????? 2) 當(dāng)給對象添加觸發(fā)效果方式時:uicompnent.setStyle("觸發(fā)方式",特效對象);
????? 3)運(yùn)用組合效果(Sequence與Parallel)時,調(diào)用該效果的addChild方法即可,將子效果添加的組合效果對象中。如:
????????????
Sequence.addChild(move); Sequence.addChild(glow);總結(jié)
- 上一篇: 修改MySQL字段为首字母大写
- 下一篇: 2010年11月23日学习内容总结