将swf编译进另一swf中,并使用其中的类
发布时间:2020-12-15 18:00:55 所属栏目:百科 来源:网络整理
导读:通常情况下,第三方库是以swc形式存在的,这时,直接就能将swc编译进我们的项目中。 如果第三方提供的不是swc,而是一个swf,通常的做法是用Loader加载这个swf,然后反射, 以达到用swf中类的目的。 在运行时加载swf,可以使用第三方提供的类,但有没有更简单
通常情况下,第三方库是以swc形式存在的,这时,直接就能将swc编译进我们的项目中。 如果第三方提供的不是swc,而是一个swf,通常的做法是用Loader加载这个swf,然后反射, 以达到用swf中类的目的。 在运行时加载swf,可以使用第三方提供的类,但有没有更简单的方法,在编译期直接将第三方 的swf直接编译进我们的项目中,然后直接用呢?当然可以! 代码如下: package { import flash.display.Loader; import flash.display.LoaderInfo; import flash.display.Sprite; import flash.events.Event; import flash.external.ExternalInterface; import flash.system.ApplicationDomain; public class Main extends Sprite { [Embed(source="Test.swf")] private var ClassLib:Class; public function Main() { var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoad); //可以参考下flex中的mx.core.MovieClipLoaderAsset var classLib:* = new ClassLib(); loader.loadBytes(classLib.movieClipData); } private function onLoad(event:Event):void { var loaderInfo:LoaderInfo = event.target as LoaderInfo; var appDomain:ApplicationDomain = loaderInfo.applicationDomain; var Hello:Class = appDomain.getDefinition("com.test.Hello") as Class; trace("> " + new Hello().say()); ExternalInterface.call("console.log","> " + new Hello().say()); } } }其中,Test.swf是另一as3项目生成的swf (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |