フレックスカスタムコンポーネントにエフェクトを追加します
-
11-09-2019 - |
質問
私はフレックスアプリを持っていると私は、実行時にアクションスクリプトを使用して新しいカスタムコンポーネントを追加します。 これが正常に動作します。私は私のカスタムコンポーネントを作成し、次のコードを追加しています:
var freeView:FreeView=new FreeView();
freeView.setStyle("showEffect",this.fadeIn);
freeView.setStyle("hideEffect",this.fadeOut);
freeView.visible=false;
this.addChild(freeView);
freeView.visible=true;
しかし、私の問題はeffectoフェードインが動作していないです。私は(パネルのような)別のコンポーネントでそれを使用する場合、それは正常に動作しますので、私は正しく効果を宣言した知っています。 誰もがこの問題で私を助けることができますか? よろしく!
解決 2
最後に、私は別の方法で問題を解決します。 代わりに、私はfalseに設定Visibleプロパティを使用してアプリケーションにコンポーネントを追加した、実行時にコンポーネントを追加し、私が必要とするとき、私はこれをtrueに変更します。
他のヒント
あなたはフリービューサブクラスでオーバーライドされたFlex超関数を呼び出すことを確認します。
特にはupdateDisplayListとのcommitProperties
override protected function updateDisplayList(w:Number, h:Number)
{
super.updateDisplayList(w, h);
// Your code here.
}
override protected function commitProperties()
{
super.commitProperties();
// Your code here.
}
あなたはハイレベルのコンテナクラスのいずれかをオーバーライドする(たとえば、キャンバスやHBoxの)またはUIComponentです?
あなたは新しい要素
にエフェクトターゲットを設定することにより、他の方法の周りにそれを行うことができます<mx:Fade id="showFlag" alphaFrom="0" alphaTo="1" duration="5000"/>
var flag:Image = new Image;
flag.source = flagSource;
something.addElement(flag);
showFlag.target = flag;
showFlag.play();
所属していません StackOverflow