有没有办法在加载的 SWF 文件中调用函数?
基本上,我有一个 .swf 文件 (A),它加载另一个 .swf 文件 (B)...我只想将 B 视为添加到我的类 .swf“A”中的任何其他实例...
必须使用 .swf 文件类的名称重新命名“Loader”:
加载的 .swf 类:
package src {
import flash.display.MovieClip;
public class LoadedSWF extends MovieClip {
public function LoadedSWF() {
}
public function helloWorld():void
{
trace("hello world from loaded swf!");
}
}
}
主要类别:
package src {
import flash.display.Loader;
import flash.net.URLRequest;
import flash.display.MovieClip;
import flash.events.Event;
public class Main extends MovieClip {
private var loader:Loader;
public function Main() {
loadSWF("LoadedSWF.swf")
}
private function loadSWF(url:String):void {
var urlRequest:URLRequest = new URLRequest(url);
loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded, false, 0, true);
loader.load(urlRequest);
addChild(loader);
}
private function onLoaded(e:Event):void {
var target:LoadedSWF = e.currentTarget.loader.content as LoadedSWF;
trace(target);
target.helloWorld();
addChild(target);
}
}
}
有两种情况,即
- 子 swf(B) 调用父 swf(A) 的函数或
- 父 swf(A) 调用加载的 swf(B) 的函数
首先,在这两种情况下,您必须确保已加载 swf(B) 并使用以下命令将其添加到 Loader swf(A)Event.COMPLETE
。这样两个swf之间的通信就可以了。加载的 swf 就像任何其他子文件一样。
这是案例 2 的示例代码
var mLoader:Loader = new Loader();
mLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler);
mLoader.load(new URLRequest("B.swf"));
public function onCompleteHandler(evt:Event)
{
var embedSWF:MovieClip = MovieClip(evt.target.content);
addChild(embedSWF);
embedSWF.function_OF_B();
}
embedSWF.function_OF_B()
语句将调用子 swf B 的函数,即function_OF_B()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)