加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 07:26:55 所属栏目:百科 来源:网络整理
导读:有没有办法在加载的SWF文件中调用函数? 基本上,我有一个.swf文件(A)加载另一个.swf文件(B)……我只想将B视为是否是添加到我班级的任何其他实例.swf“A”…… 必须使用.swf文件类的名称重新创建“Loader”: 加载.swf类: package src {import flash.display
有没有办法在加载的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,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);
    }
}

}

解决方法

在Adobe Flex中,您可以使用flash.display.Loader类加载另一个SWF,并向其添加事件侦听器.

此示例来自Adobe文档:

var url:String = "http://www.helpexamples.com/flash/images/image2.jpg";
var urlRequest:URLRequest = new URLRequest(url);
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loader_complete);
loader.load(urlRequest);
addChild(loader);

function loader_complete(evt:Event):void {
    var target_mc:Loader = evt.currentTarget.loader as Loader;
    target_mc.x = (stage.stageWidth - target_mc.width) / 2;
    target_mc.y = (stage.stageHeight - target_mc.height) / 2;
}

由于contentLoaderInfo是EventDispatcher的子类,因此您还可以将事件分派给加载的SWF.这基本上就像从SWF调用一个函数,只是稍微复杂一点.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读