0

私の目標は、Flash または AIR で実行する教育用ソフトウェアを作成することです。(おそらくほとんどがモバイル デバイス上の AIR です。) ステージには、Flex が提供するようなコントロールを備えた領域と、純粋な ActionScript で実行されるアニメーションとグラフィックを備えた別の領域があると想定しています。Flex を使用する場合、作成する新しいコンポーネントで UIComponent を継承する必要があると言われましたが、別の方法として、大きな UIComponent を画面に配置して、Sprite ベースのオブジェクトを追加することもできると言われました。だから私は後者をコーディングしようとしていますが、行き詰まっています。ボタンと UIComponent を含む MXML ファイルを作成しました。次に、コンストラクターで UIComponent を受け取り、オブジェクトの追加を処理する別の .AS ファイルにクラスを書きたいと思います。MXML ファイルのスクリプト コードで UIComponent を参照する方法がわかりません。ここに私が持っているものがあります:

<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">
  <fx:Script>
    <![CDATA[
      import exper AddSprites;
      private var e:AddSprites;  
      public function addStuff():void {
        ???? next line is question ???
        e = new AddSprites(..UIComponent?..);
      }
    ]]>

  </fx:Script>

  <s:layout>
    <s:VerticalLayout/>
  </s:layout>

  <s:Button click="addStuff()" />

  <mx:UIComponent id="uic"/>
</s:Application>
4

1 に答える 1

1

uicスクリプト ブロック内で、ID を使用して UIComponent を参照できます。その後、それを addStuff 関数に渡すことができます。UIComponent は Sprite を継承しているため、Sprite をパラメーターとして受け取り、Flex クラスについて何も知らず、純粋な AS3 コードである addSprite 関数を完全に作成できます。

だから基本的に:

e = new AddSprites(uic);

With:function AddSprites(holder:Sprite)コンストラクタ用。

于 2013-07-19T14:26:29.810 に答える