外部ドメインの画像のビットマップ処理なんかで必要になる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回だけ使いましたが、まだ閉じられていないようですね。
Pingback: as3 クロスドメインとかされてる時、読み込んだ画像にsmoothingしたい at KOIKE TIIIIIPS