Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash AS3导入FLA文件_Flash_Actionscript 3_Import_Components - Fatal编程技术网

Flash AS3导入FLA文件

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不是一个坏方法 ****编辑我忘记了最明显的答

我有两个as3项目。项目
A
有2个文件(
fla
有1个框架和一些组件,
as
有一些行为和默认构造函数)。我想通过as3代码在我的项目
B
中使用项目
A
。但是当我做类似于
aaa=新的A(x,y,z)
我收到了很多错误,这些错误在我的
A.as
中使用了未定义的属性(那些在我的
A.fla
文件中定义的属性)

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


谢谢。

加载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,然后从其库中拉出一个类(但这可能是您不需要的不必要的复杂性)