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调用一个函数,只是稍微复杂一点. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |