【问题标题】:mixing ActionScript animation/graphics with Flex controls将 ActionScript 动画/图形与 Flex 控件混合
【发布时间】:2013-07-17 17:08:13
【问题描述】:

我的目标是编写在 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>

【问题讨论】:

  • 您的意思是我不一定需要使用 Flex 来获得单选按钮、列表、复选框等基本控件? fl.controls 中的控件是否与 Flex 一样易于使用?
  • 所以我使用的是 mxmlc,这是 Flex 提供的编译器。使用 import fl.controls.*,我得到了 fl.controls 找不到的错误。还有什么我需要安装的吗?
  • @composerMike 您至少需要包含适当的 swc 文件,其中包含 fl.controls.* 类的定义,尽管我不确定您可以从哪里获取它(可能在某处Flash IDE 安装文件夹)。问题在于该 swc 中的控件并非设计为与 Flex 组件生命周期一起使用。相反,您应该在这里采用您最初的方法,即创建一个新的 UIComponent,我将在这里挖掘一些文章。
  • 好的,有两件事要检查,去我的网站shaunhusain.com 并点击代码,列表中的每一项都可以点击,然后会打开一个带有示例的窗口,然后您可以右键单击以查看源代码。我所做的大部分工作都是 Flex 3,以获取有关此处 help.adobe.com/en_US/flex/using/… 的 4 的信息,但由于所有 Spark 组件都是 UIComponent 的子类(来自 Flex 3),因此它仍然基本相同。您可以使用 AS3 绘制到 updateDisplayList 中的图形,并使用计时器使显示列表无效以进行更新。

标签: actionscript-3 flex4


【解决方案1】:

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

所以基本上:

e = new AddSprites(uic);

与:function AddSprites(holder:Sprite)为您的构造函数。

【讨论】:

  • 谢谢,这是我需要的简单想法。
猜你喜欢
  • 1970-01-01
  • 2011-03-20
  • 2014-11-29
  • 2012-05-13
  • 2014-03-29
  • 2010-09-16
  • 1970-01-01
  • 1970-01-01
  • 2014-10-05
相关资源
最近更新 更多