[英]AS3 load symbol from external swf library
我有 2 個 SWF,其中一個(我們稱之為Resources.swf
),在其庫中包含多個符號(大多數是 MovieClips),但是,它們都沒有添加到舞台中(時間軸只包含一個空幀) ,然后是另一個 swf ( Main.swf
),我需要從另一個 SWF 導入一些符號。
我一直在環顧四周,搜索,但我看到並嘗試過的所有信息都使用以下內容從舞台/時間軸導入符號:
loadedMC = MovieClip(loader.content);
或者
loadedMC = MovieClip(event.target.content);
我的符號有一個 class 定義,因為它們也以這種方式在其他 swf 中使用:
[Embed(source='assets/Resources.swf', symbol='SymbolName')]
public class Generic2 extends MovieClip
有沒有辦法做到這一點?
如果沒有,我是否修改了我的 Resources.swf 來解決這個問題,或者我有其他選擇嗎?
加載 Resources.swf 后,您可以創建加載類的實例。
這里有一個片段可能會有所幫助:
var dynClass : Class = Class(getDefinitionByName("fully.qualified.ClassName"));
if(dynClass)
{
var app : Object = new dynClass();
addChild(app as DisplayObject);
}
按着這些次序
幫手 Function
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;
}
您需要有一個 as3 class,或者只是導出框架中的符號,否則您無法引用它。 如果您不導出影片剪輯,您的 swf 將為空...基本上您可以將其導出為某個 class 然后引用空類!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.