質問

私はフレックスアプリを持っていると私は、実行時にアクションスクリプトを使用して新しいカスタムコンポーネントを追加します。 これが正常に動作します。私は私のカスタムコンポーネントを作成し、次のコードを追加しています:

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();
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top