当前位置:编程学习 > JAVA >>

将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.ExternalInte易做图ce;
	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());
			ExternalInte易做图ce.call("console.log", "> " + new Hello().say());
		}
	}
}

 

补充:软件开发 , Java ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,