0

フレックス アプリケーションがあり、実行時にアクション スクリプトを使用して新しいカスタム コンポーネントを追加したいと考えています。これはうまくいきます。カスタム コンポーネントを作成し、次のコードを追加しました。

var freeView:FreeView=new FreeView();
freeView.setStyle("showEffect",this.fadeIn);
freeView.setStyle("hideEffect",this.fadeOut);
freeView.visible=false;
this.addChild(freeView);
freeView.visible=true;

しかし、私の問題は、フェードイン効果が機能していないことです。別のコンポーネント(パネルなど)で使用すると正常に動作するため、効果を正しく宣言したことはわかっています。誰でもこの問題で私を助けることができますか? よろしくお願いします!

4

3 に答える 3

0

最後に、私は別の方法で問題を解決します。代わりに、実行時にコンポーネントを追加し、visibleプロパティをfalseに設定してアプリケーションにコンポーネントを追加し、必要に応じてtrueに変更しました。

于 2009-09-24T07:46:12.420 に答える
0

効果のターゲットを新しい要素に設定することで、逆の方法で行うことができます

<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();
于 2014-04-04T14:00:11.450 に答える
0

FreeView サブクラスでオーバーライドされた 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.
}

高レベルのコンテナー クラス (Canvas や HBox など) または UIComponent のいずれかをオーバーライドしていますか?

于 2009-09-21T06:37:18.467 に答える