获取swf里的资源
/**
* 说明:这个类简单的介绍了加载swf之后想要获取swf里的资源该如何操作
*
*
* 例子当中访问了三种格式资源
* 1. png(当然换成jpg一样效果)
* 2. MovieClip
* 3. fl.util.Button
*
* 交流qq:2936147609
*/
package
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.DisplayObject;
import flash.display.Loader;
import flash.display.LoaderInfo;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
import flash.geom.Point;
import flash.net.URLRequest;
import flash.system.ApplicationDomain;
public class Test extends Sprite
{
private var rect:Sprite;
private var point:Point;
[Embed(source="test.png")]
private var testImg:Class;
private var path:String="../lib/test.swf";
private var loader:Loader;
private var request:URLRequest;
public function Test()
{
loader=new Loader();
request=new URLRequest(path);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,complete);
loader.load(request);
}
private function complete(event:Event):void
{
//LoaderInfo对象承载载入swf文件的信息
var swfTarget:LoaderInfo=event.target as LoaderInfo;
//swfTarget的只读属性applicationDomain返回一个ApplicationDomain
//创建被加载swf的应用程序域
var appDomain:ApplicationDomain=swfTarget.applicationDomain as ApplicationDomain;
//getDefinition方法从指定的应用程序域获取一个公共定义。
var imgC:Class=appDomain.getDefinition("TestImg") as Class;
var mcC:Class=appDomain.getDefinition("TestMc") as Class;
var btnC:Class=appDomain.getDefinition("fl.controls.Button") as Class;
//创建实例,并返回影片剪辑对象
var bmd:BitmapData = new imgC as BitmapData;
var bmp:Bitmap = new Bitmap(bmd);
var mc:MovieClip = new mcC as MovieClip;
var btn:DisplayObject = new btnC as DisplayObject;
mc.x = bmp.width;
btn.y = bmp.height;
addChild(bmp);
addChild(mc);
addChild(btn);
}
}
}
浙公网安备 33010602011771号