actionscript-3 - 访问加载的 .swf 文件中的函数?

标签 actionscript-3 loader

有没有办法在加载的 SWF 文件中调用函数?

基本上,我有一个加载另一个 .swf 文件 (B) 的 .swf 文件 (A)...我只想将 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) 已使用 Event.COMPLETE 加载并添加到 Loader swf(A)。 .然后两个swf之间的通信是可能的。 Loaded swf 就像任何其他 child 一样。

    这是案例 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()

    关于actionscript-3 - 访问加载的 .swf 文件中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3766138/

    相关文章:

    flash - 版本中的堆栈溢出错误,但不是调试错误。 ( ActionScript )

    actionscript-3 - 如何将 BitmapData 保存到 Bitmap *.bmp 文件,或者更快的 JPE 编码方法

    actionscript-3 - as3 播放一次影片剪辑

    javascript - Javascript 中的自旋锁

    javascript - Flex 外部接口(interface)回调

    android - AS3 如何定义一个整数然后在函数中使用它

    flash - 在 3D 中反转旋转,使对象始终面向相机?

    android - loader 和 AsyncTask 有什么区别?

    javascript - ColladaLoader 和 progressCallback

    drupal - 如何更改Drupal的ajax gif加载器