Chinaunix首页 | 论坛 | 博客
  • 博客访问: 278841
  • 博文数量: 64
  • 博客积分: 3099
  • 博客等级: 中校
  • 技术积分: 615
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-29 19:38
文章分类

全部博文(64)

文章存档

2015年(1)

2014年(7)

2013年(6)

2012年(3)

2010年(11)

2009年(3)

2008年(19)

2007年(14)

我的朋友

分类: 系统运维

2010-02-22 17:27:12


简单使用loader 加载外部swf文档中的图片资源:


            import spark.primitives.BitmapImage;
            import mx.events.FlexEvent;
            
             private var _loader:Loader;
             private var _dataToLoad:LoaderInfo ;
            private var _context:LoaderContext;
             //加载外部swf

            protected function application1_creationCompleteHandler(event:FlexEvent):void
            {
                 _loader = new Loader();
                _loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loadCompleteHandler);
                _loader.load(new URLRequest("x.swf"),_context);
            }
            
            private function loadCompleteHandler(e:Event):void
            {
                trace("complete");
                 var img:BitmapImage = new BitmapImage();
                var dataClass:Class = _loader.contentLoaderInfo.applicationDomain.getDefinition("classname") as Class ;
                img.source = new dataClass(0,0) as BitmapData;
                this.addElement(img);
            }


简单实用loader加载swf当中的movieClip文件


package
{
            import flash.display.Loader;
            import flash.display.LoaderInfo;
            import flash.display.MovieClip;
            import flash.display.Sprite;
            import flash.events.Event;
            import flash.net.URLRequest;
            import flash.system.ApplicationDomain;
            import flash.system.LoaderContext;
            import flash.system.SecurityDomain;

    public class loader2 extends Sprite
    {
             private var _loader:Loader;
             private var _dataToLoad:LoaderInfo ;
            private var _context:LoaderContext;
            
            public function loader2()
            {
                startLoader();
            }
            
            protected function startLoader():void
            {
                 _loader = new Loader();
                 _context = new LoaderContext();
                 _context.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain);
                // _context.securityDomain = SecurityDomain.currentDomain;
本地SWF文件取不到securityDomain属性值.这么写会报错。
                _loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loadCompleteHandler);
                _loader.load(new URLRequest("mc.swf"),_context);
            }
            
            private function loadCompleteHandler(e:Event):void
            {
                trace("complete");
                var dataClass:Class = _loader.contentLoaderInfo.applicationDomain.getDefinition("mc1") as Class ;
                var mc1:MovieClip = new dataClass() as MovieClip;
                mc1.y = 100;
                this.addChild(mc1);
                var dataClass:Class = _loader.contentLoaderInfo.applicationDomain.getDefinition("mc2") as Class ;
                var mc2:MovieClip = new dataClass() as MovieClip;
                mc2.x = 50;
                mc2.y = 100;
                this.addChild(mc2);                 
            }
    }
}


   loade当中可能会抛出的错误:
* LoaderContext.securityDomain值必须为null或者等于SecurityDomain.currentDomain。这以来 你只有把要加载的文件放在受信任安全沙箱中,或者放在你自己域(需要一个策略文件),才能加载到这些文件..
* 本地的SWF文件只能将LoaderContext.securityDomain设置为null,不充许在本地加载非本地件.
* 如果applicationDomain 或者 securityDomain 属性是一个不被信任的域。
* 本地SWF文件取不到securityDomain属性值.
阅读(2948) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~