宜昌本地软件开发与弱电工程服务商
项目咨询 · 快速响应
您当前的位置: > 博客2 > AS2与AS3技术

[AS3]AS3安全沙箱实现跨域加载swf,jpg,png,gif文件

2016-10-13 00:16:48 点击量:21 标签: 收藏本文

我们在flash加载外部swf,jpg,png,gif时,经常出现安全沙箱错误,通过设置文件所在域的安全策略文件可以解决这个问题。但是有时我们需要加载我们没权限设置安全策略文件的域时,用下面这个方面可以帮你解决:
1、首先使用一个loader加载一个外部SWF,监听loader.contentLoaderInfo的Event.COMPLETE事件;
2、加载成功后,先暂时不使用这个加载成功的loader,而是另写一个loader2,使用loader2.loadBytes()来加载第一个loader的contentLoaderInfo.bytes,并监听Loader.contentLoaderInfo的Event.COMPLETE事件;
3、在第二个Loader加载成功后,就可以使用被加载的文件了;//loader.content==[Object MovieClip]

  1. public function set imgURL(value:String):void { 
  2.             _imgURL = value
  3.             loaderImage(); 
  4.         } 
  5.         /**加载外部图片*/ 
  6.         private function loaderImage():void { 
  7.             loader=new Loader(); 
  8.             loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete); 
  9.             loader.load(new URLRequest(_imgURL)); 
  10.         } 
  11.         private function onComplete(event:Event):void { 
  12.             //trace("加载内容数据:" + loader.contentLoaderInfo.bytes) 
  13.             loader2=new Loader(); 
  14.             loader2.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete2); 
  15.             loader2.loadBytes(loader.contentLoaderInfo.bytes); 
  16.         } 
  17.         private function onComplete2(event:Event):void { 
  18.             this.addChild(loader2.content); 
  19.             trace(loader2.content); 
  20.         } 

加载图像并让其绕中心点旋转

  1. loader.content.x =  -  loader.content.width / 2; 
  2.             loader.content.y =  -  loader.content.height / 2; 
  3.              
  4.             ui=new Sprite(); 
  5.             ui.x=(stage.stageWidth)/2; 
  6.             ui.y=(stage.stageHeight)/2; 
  7.             ui.addChild(loader.content); 
  8.             this.addChild(ui); 

 

ABOUT US
宜昌农人网络科技有限公司

我们是一家提供综合软件外包与弱电工程服务的技术公司。

业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。

公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室