AS3导入FLA文件

时间:2010-01-14 23:59:00

标签: flash actionscript-3 import components

我有两个as3项目。项目A有2个文件(fla包含1个框架和一些组件,as包含一些行为和默认构造函数。我想通过as3代码在项目A中使用项目B。但是,当我执行A a = new A(x, y, z);之类的操作时,我收到了很多错误,我在A.as中使用了未定义的属性(在我的A.fla文件中定义的属性)。

所以,现在我正在使用加载程序将A.swf动态加载到我的项目B中。这可能不是一种有效的方法。在项目A中导入项目B的正确方法是什么?

感谢。

1 个答案:

答案 0 :(得分:3)

加载swf并不是一个糟糕的方法..

****编辑我忘记了最明显的答案: 如果您使用的是CS4,则应转到发布设置并选中“导出为SWC” 在flaB中,链接外部库(Actionscript设置)以包含刚刚生成的SWC flaA。现在,你可以在flaB内说 addChild(new flaAClass());

这使您可以编译时访问FLA A中的任何库符号。这意味着您无法使用文档类,因此请确保为要引入FLA B的内容创建库符号并将其导出for actionscript。然后将符号的类标签设置为唯一的。将上面示例中的“flaAClass”替换为符号的名称。

但是你不应该在你的FLA中定义任何属性。工作的良好标准是这样的: 1)转到“发布”设置并取消选中“自动声明舞台实例”。

2)设置你的Document类/ movieclip /,以便在类中对舞台上的内容进行引用(这就是为什么你必须做第1步 - 否则它会抱怨你声明它两次)

示例:舞台上有movieclip“mcA”..您的课程可能如下所示:

包{

public class mainA extends MovieClip {
public var mcA:MovieClip;
      public function mainA(...args):void
      {
         trace(mcA); //If mcA is on the stage and this is the document class, this will 
         //return [object MovieClip]
      }
}

}

3)作为文档类或基类附加到movieclip中的某些内容,您可以通过这种方式引用它。


以上内容适用于自定义动态类,但不包含FLA带来的任何内容。如果你想从fla A中取出它们并将它们放入fla B ..你应该首先加载SWF,然后从它的库中拉出一个类(但这可能是你不需要的不必要的复杂性)。