1

私は現在、想像できるほぼすべてのグラフィックまたは特殊効果を作成する関数を作成するために何かに取り組んでおり (ベースとなる movieClip が 1 つまたは 2 つあることを前提として)、問題に遭遇しました。GraphicEffect 関数のビヘイビア オブジェクトに渡されたパラメータに基づいて、エフェクト movieClip に関数を追加できるようにする必要があります。if ステートメントを内部に配置せずに、既存の onEnterFrame 関数にスピン、成長、縮小などの新しい関数を追加する効果的な方法はありますか?

4

2 に答える 2

2

はい、方法はあります。

ビヘイビア オブジェクトをどのようにセットアップしたかはわかりませんが、{A:spin,B:grow,C:fade} のようなものであると仮定すると、エフェクト ムービークリップに関数を追加することができます (呼び出しますit 'fx') は、次のスタイルのコードを使用して:

   fx.TempA=fx.onEnterFrame;
   function NewA(){fx.TempA();behaviors.A(fx);};
   fx.onEnterFrame=function(){NewA();};   
   fx.TempB=fx.onEnterFrame;
   function NewB(){fx.TempB();behaviors.B(fx);};
   fx.onEnterFrame=function(){NewB();};   
   fx.TempC=fx.onEnterFrame;
   function NewC(){fx.TempC();behaviors.C(fx);};
   fx.onEnterFrame=function(){NewC();};
于 2012-08-24T10:18:41.403 に答える
0

別の方法

mcFX.enterFrameFunctions = [];

mcFX.onEnterFrame = function(){
    for(var i in this.enterFrameFunctions) this.enterFrameFunctions[i]();
}

function a():Void {
    trace("a called");
}

function b():Void {
    trace("b called");
}

function c():Void {
    trace("c called");
}

mcFX.enterFrameFunctions.push(a, b);
于 2012-08-24T13:52:46.950 に答える