凡人而已。

导航

获取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);
        }
    }
}

posted on 2013-08-09 14:19  凡人而已。  阅读(293)  评论(0)    收藏  举报