外部ドメインの画像のビットマップ処理なんかで必要になるcrossdomain.xmlですが、Loader.loadBytesを使うと無視できる穴はまだ塞がっていない様子。
以下が50行弱の簡単なコードです。
※2011.8.26現在。
package
{
import flash.display.*;
import flash.events.*;
import flash.net.*;
public class Main extends MovieClip
{
private const PATH:String=外部画像のアドレス;
private var loader_1:Loader;
private var loader_2:Loader;
public function Main()
{
loader_1 = new Loader();
loader_1.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComp);
loader_1.load( new URLRequest( PATH ) );
}
private function loadComp(e:Event):void
{
loader_2 = new Loader();
loader_2.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComp_2);
loader_2.loadBytes(loader_1.contentLoaderInfo.bytes);
}
private function loadComp_2(e:Event):void
{
var bmpData:BitmapData = new BitmapData( loader_2.width, loader_2.height, true );
bmpData.draw( loader_2 ); //ここでエラーになるはず
var bmp:Bitmap = new Bitmap( bmpData );
bmp.smoothing=true;
bmp.rotation=5;
addChild( bmp );
}
}
}
いつも通りLoaderに画像を読ませた後、別のLoaderで先ほどのLoaderのバイトデータを読み込むとクロスドメインの設定が無視されます。
wonderflにも載ってますね。>外部画像をビットマップ化する
2010年に実案件で1回だけ使いましたが、まだ閉じられていないようですね。
1 Comments.