将ActionScript动画/图形与Flex控件混合使用



我的目标是编写在Flash或AIR中运行的教育软件。(可能主要是移动设备上的AIR。)我设想舞台将有一个像Flex提供的控件区域,但另一个区域将有纯ActionScript中完成的动画和图形。有人告诉我,如果我使用Flex,我需要在我创建的任何新组件中继承UIComponent,但我也被告知,我可以在屏幕上放一个大的UIComponent,并在其中添加基于Sprite的对象。所以我试图对后者进行编码,但我被卡住了。我创建了一个带有按钮和UIComponent的MXML文件。然后,我想在一个单独的.AS文件中编写一个类,该文件在其构造函数中使用UIComponent并处理添加对象。我不知道如何在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>

您可以在脚本块中引用UIComponent及其id uic。然后,您可以将其传递给addStuff函数。由于UIComponent继承自Sprite,因此您可以完美地拥有一个addSprite函数,该函数将Sprite作为参数,并且对Flex类一无所知,并且是纯AS3代码。

所以基本上:

e = new AddSprites(uic);

带有:function AddSprites(holder:Sprite)作为构造函数。

最新更新