結論:URLLoaderではなくImageかLoaderを使う Flexでどこかのサーバーにある画像のバイト列を得る方法はいくつかあるが、問題はFlexコンテンツを読み込んだサーバー(自サーバー)以外のサーバー(他サーバー)にある画像のバイト列を得る方法だ。 この場合、セキュリティーサンドボックスの制限により、自サーバーからバイト列を得る場合より方法は限られてくる。 ひとつはcrossdomain.xmlをサーバー上に配置する方法だが、なんらかの理由によりcrossdomain.xmlを配置したくない場合はどうするか。 始めはURLLoaderを使ってバイト列を得ていたが、これは自サーバーかcrossdomain.xmlを配置した場合のみ有効で、これではダメだとわかった。 その後、Imageコンポーネントがセキュリティーサンドボックス制限を超えている事がわかり、それならLoaderなら同様に超えられるかも知れないと試したところ、その通りだった。 var bytes:ByteArray; var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteLoader); function onCompleteLoader():void { bytes = loader.contentLoaderInfo.bytes; } loader.load(new URLRequest(url)); 今回のケースの場合、Imageを使用したくなかったのでわざわざLoaderを使ったが、Image.loaderInfo.bytesを取っても可能だろう。 URLLoaderは汎用だが、LoaderやImageは画像の読み込みに用途を限っているためセキュリティーサンドボックスの制限が緩いのではないかと思われる。 目的が達成できたので、これ以上追求する気なし(^^);