Flash AS3导入FLA文件
我有两个as3项目。项目Flash AS3导入FLA文件,flash,actionscript-3,import,components,Flash,Actionscript 3,Import,Components,我有两个as3项目。项目A有2个文件(fla有1个框架和一些组件,as有一些行为和默认构造函数)。我想通过as3代码在我的项目B中使用项目A。但是当我做类似于aaa=新的A(x,y,z)我收到了很多错误,这些错误在我的A.as中使用了未定义的属性(那些在我的A.fla文件中定义的属性) 因此,现在我正在使用一个加载程序将a.swf动态加载到我的项目B。这可能不是一种有效的方法。在projectB中导入projectA的正确方法是什么 谢谢。加载swf不是一个坏方法 ****编辑我忘记了最明显的答
A
有2个文件(fla
有1个框架和一些组件,as
有一些行为和默认构造函数)。我想通过as3代码在我的项目B
中使用项目A
。但是当我做类似于aaa=新的A(x,y,z)
我收到了很多错误,这些错误在我的A.as
中使用了未定义的属性(那些在我的A.fla
文件中定义的属性)
因此,现在我正在使用一个加载程序将a.swf
动态加载到我的项目B
。这可能不是一种有效的方法。在projectB
中导入projectA
的正确方法是什么
谢谢。加载swf不是一个坏方法 ****编辑我忘记了最明显的答案: 如果您使用的是CS4,则应转到发布设置并选中“导出为SWC” 在flaB中,链接外部库(Actionscript设置)以包含刚刚生成的SWC flaA。现在,你可以轻松地说
addChild(新flaAClass())代码>
这使您可以在编译时访问FLA A中的任何库符号。这意味着您不能使用document类,因此请确保为要引入到FLA B的内容创建库符号,并将其导出到actionscript。然后将符号的类标签设置为唯一的。将上面示例中的“flaAClass”替换为符号的名称。
但是你不应该在你的FLA中定义任何属性。一个良好的工作标准如下:
1) 转到发布设置并取消选中“自动声明阶段实例”
2) 设置您的文档类/movieclip/随便什么,以便在类中有对舞台上的内容的引用(这就是为什么您必须执行步骤1——否则它会抱怨您声明了两次)
例子:舞台上有电影《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,然后从其库中拉出一个类(但这可能是您不需要的不必要的复杂性)