我有2个SWF,其中一个(我们称之为Resources.swf
),它的库中包含几个符号(大多数是MovieClip),但是,它们都没有被添加到舞台中(时间轴包含只有一个空框架),
然后,另一个swf(Main.swf
),我需要从其他SWF导入一些符号。
我一直在寻找并搜索,但我看到并尝试过的所有信息都会使用以下内容从舞台/时间线导入符号:
loadedMC = MovieClip(loader.content);
或
loadedMC = MovieClip(event.target.content);
我的符号有一个类定义,因为它们也用于其他swf:
[Embed(source='assets/Resources.swf', symbol='SymbolName')]
public class Generic2 extends MovieClip
有没有办法做到这一点?
如果没有,我是否修改了我的Resources.swf来解决这个问题,或者我有其他选择吗?
答案 0 :(得分:2)
加载Resources.swf后,您可以创建已加载类的实例。
这是一个可能有用的代码段:
var dynClass : Class = Class(getDefinitionByName("fully.qualified.ClassName"));
if(dynClass)
{
var app : Object = new dynClass();
addChild(app as DisplayObject);
}
答案 1 :(得分:2)
请按照以下步骤操作
辅助功能
public function createInstance(mc:MovieClip, className:String, instName:String):MovieClip
{
var cls:Class = mc.loaderInfo.applicationDomain.getDefinition(className) as Class;
if (cls)
{
var instMC:MovieClip = new cls();
instMC.name = instName;
return instMC;
}
return null;
}
答案 2 :(得分:0)
您需要拥有一个as3类,或者只是在框架中导出符号,否则您无法引用它。如果你不导出你的动画片段,你的swf将是空的...基本上你可以将它导出为某个类,然后引用空类!