1

OSMF を使用してビデオ プレーヤーを作成する必要があります。mxml ファイルを actionscript ファイルから分離したいと考えています。どうやってやるの ?actionscript クラス ファイルがあり、mxml がロードされたときにそのコンストラクターを実行したいと考えています。

creationComplete="initApp()" を追加し、initApp で を呼び出しますvar p = new myclass();。今 myclass() で、プログラムでラベルを追加しようとしています

my_player.mxml

<?xml version="1.0" encoding="utf-8"?>
<!-- controls\videoplayer\VideoPlayerSimple.mxml-->
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" creationComplete="initApp()"
               >
    <fx:Script>
        <![CDATA[
            public function initApp(){
                var p = new my_player("a");
            }
        ]]>
    </fx:Script>

</s:Application>

my_player.as

   package 
{
    import mx.controls.Label;
    import mx.core.Application;
    import mx.events.FlexEvent;
    import spark.components.Application;
    public class my_player extends spark.components.Application
    {
        public function convey_player(a:String){
            var label:Label = new Label();
            label.text = "Testxxx";
            addElement(label);
                    Alert.show("Hello");

        }
    }
}

ただし、 flash には何も追加されません。何か不足していますか?

4

1 に答える 1

2

コンストラクターは、オブジェクト js のインスタンスが作成されたときにのみ実行されます。コンストラクター コードを実行する場合は、そのインスタンスを作成する必要があります。MXML ファイルで、creationComplete イベントのイベント リスナーを追加し、そこに ActionScript オブジェクトのインスタンスを作成します。

これにより、コンポーネントのライフサイクルの一部として MXML コードの作成プロセスが終了した後で、ActionScript クラス コンストラクター コードが効果的に実行されます。

于 2013-02-26T20:05:40.280 に答える