我们在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]
public function set imgURL(value:String):void {
_imgURL = value;
loaderImage();
}
/**加载外部图片*/
private function loaderImage():void {
loader=new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete);
loader.load(new URLRequest(_imgURL));
}
private function onComplete(event:Event):void {
//trace("加载内容数据:" + loader.contentLoaderInfo.bytes)
loader2=new Loader();
loader2.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete2);
loader2.loadBytes(loader.contentLoaderInfo.bytes);
}
private function onComplete2(event:Event):void {
this.addChild(loader2.content);
trace(loader2.content);
}
_imgURL = value;
loaderImage();
}
/**加载外部图片*/
private function loaderImage():void {
loader=new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete);
loader.load(new URLRequest(_imgURL));
}
private function onComplete(event:Event):void {
//trace("加载内容数据:" + loader.contentLoaderInfo.bytes)
loader2=new Loader();
loader2.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete2);
loader2.loadBytes(loader.contentLoaderInfo.bytes);
}
private function onComplete2(event:Event):void {
this.addChild(loader2.content);
trace(loader2.content);
}
加载图像并让其绕中心点旋转
loader.content.x = - loader.content.width / 2;
loader.content.y = - loader.content.height / 2;
ui=new Sprite();
ui.x=(stage.stageWidth)/2;
ui.y=(stage.stageHeight)/2;
ui.addChild(loader.content);
this.addChild(ui);
loader.content.y = - loader.content.height / 2;
ui=new Sprite();
ui.x=(stage.stageWidth)/2;
ui.y=(stage.stageHeight)/2;
ui.addChild(loader.content);
this.addChild(ui);