Flexの一般的な特効


一般的な効果クラス:
AnimateProperty:アニメーション属性Blur:ブラーDesolve:溶解Fade:凋零Glow:発光Iris:瞳孔拡大縮小Move:移動Pause:定格Resize:サイズ変更Rotate:回転SoundEffect:音響(WipeLeft,WipeRight,WipeUp,WipeDown):Zoomを拭く:拡大縮小
Sequence:シーケンス再生グループ
Parallel:コンビネーションの同時再生
一般的なアニメーション効果のトリガ方法:
AddedEffect:コンテナcreationCompleteEffectへの追加:focusInEffectの作成完了:キーボード入力focusOutEffectの取得:キーボード入力を失ったhideEffect:visableプロパティをfalse mouseDownEffectに設定:mouseUpEffectをマウスで押す:moveEffectをマウスで押す:ドラッグされたresizeEffectをドラッグされる:大きいサイズを再設定する小removedEffect:削除されたrollOutEffect:マウスをコントロールの外に移動するrollOverEffect:マウスをコントロールに移動するshowEffect:visableプロパティをtrueに設定する
 
一部の例:
     
1:glow(発光)
コード:
        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方向のぼかし終了位置(コントロールに対して)です.
blurYFromは、Y方向のぼかし開始位置(コントロールに対して)です.
blurYToは、Y方向のぼかし終了位置(コントロールに対して)
カラーは光る色
     
2:Sequence(シーケンス)Bounce(ジャンプ)
コード:
import mx.effects.easing.*;

       
       
   

yByはY方向に作用する.
duratuionは特効時間1000ミリ秒です
easingFunctionはリリース動作です
Bounce.easeOutは飛び出す動作です
Bounce.easeInはジャンプバックの動作です
 
コントロールに作用する:
mouseDownEffect="{movePauseMove}"
id="image4"/>
 
カスタム効果:
各エフェクトは、EffectInstanceエフェクトインスタンスとEffectクラスファクトリの2つの要素で構成されています.したがって、効果をカスタマイズする場合も、この2つのクラスのサブクラスをペアで作成し、それぞれ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);   
        }   
    }   
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)ある効果を手動で再生したい場合は,効果インスタンスのプレイメソッドを呼び出せばよいが,安定するためにプレイメソッドを呼び出す前にendを呼び出し,以前の効果が終了したことを保証するのが一般的である.
2)オブジェクトにトリガ効果を追加する場合:uicompnent.setStyle(「トリガ方式」、特殊効果オブジェクト);
3)コンビネーション効果(SequenceとParallel)を使用する場合、その効果のaddChildメソッドを呼び出せば、サブ効果が追加されるコンビネーション効果オブジェクトになります.次のようになります.
            
Sequence.addChild(move);
Sequence.addChild(glow);