在AS3中,可以通过使用Loader
类来加载外部的SWF文件,并从中实例化类。以下是一个示例代码:
import flash.display.Loader;
import flash.display.LoaderInfo;
import flash.display.MovieClip;
import flash.events.Event;
import flash.net.URLRequest;
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);
loader.load(new URLRequest("external.swf"));
function onLoadComplete(event:Event):void {
var loadedSWF:LoaderInfo = event.target as LoaderInfo;
var loadedClass:Class = loadedSWF.applicationDomain.getDefinition("MyClass") as Class;
var instance:MovieClip = new loadedClass() as MovieClip;
addChild(instance);
}
在这个示例中,我们首先创建一个Loader
对象,并添加一个Event.COMPLETE
事件监听器。然后,使用load()
方法加载外部SWF文件。
在onLoadComplete()
函数中,我们获取到加载完成的SWF的LoaderInfo
对象。然后,通过applicationDomain
属性获得SWF文件的定义,并使用getDefinition()
方法获取到所需的类。
最后,我们可以实例化这个类,并将其添加到舞台上显示出来。注意,这个示例假设外部SWF文件中包含一个名为MyClass
的类,并且该类继承自MovieClip
。
请确保将“external.swf”替换为实际加载的外部SWF文件的路径。
上一篇:as3,事件冒泡和捕获阶段