0

さまざまな方法を 1 週間試した後、私の最後の手段は、ActionScript Loader に関する私の問題について皆さんに尋ねることです。

別のアプリケーションで動作するため、Loader を使用して URL から画像をロードできません。コードのどこに違いがあるのか​​ わかりません。Loader オブジェクトの内容をデバッグすることさえできません。そこにあるものを単に覗き見しようとすると例外がスローされるからです。

私のコードは次のとおりです。

urlLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
urlLoader.addEventListener(Event.COMPLETE, onLoadedBytes);
urlLoader.addEventListener(IOErrorEvent.IO_ERROR, passEvent);
urlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, passEvent);
urlLoader.load(new URLRequest(url));

通常のローダー:

loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onImageLoaded);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, passEvent);
loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR,   passEvent);
loader.load(new URLRequest(url), new LoaderContext(true));

関連するメソッドを読み込んでいます:

private function onLoadedBytes(e:Event):void
{
    var ba:ByteArray = e.target.data;
    var loader:Loader = new Loader();
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onImageLoaded);
    loader.loadBytes(ba);
}
private function onImageLoaded(e:Event):void
{
    _bitmapData = e.target.content.bitmapData;
    dispatchEvent(new Event(Event.COMPLETE));
}

それを修正する方法はありますか?画像を読み込もうとしているドメインは VK Games ( http://vk.com/playfreegames ) で、画像はアプリゲーム関連です。

スタックを検索して答えを探しましたが、提示された解決策のどれも私のケースを解決しませんでした。

4

2 に答える 2

1

それはセキュリティの問題です。ドキュメントから: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Loader.html

「読み込まれたコンテンツが画像の場合、SWF ファイルのドメインが画像のオリジン ドメインの URL ポリシー ファイルに含まれていない限り、セキュリティ サンドボックスの外部にある SWF ファイルからそのデータにアクセスすることはできません。」

セキュリティ イベントをリッスンすると、おそらくエラーが発生していることがわかります。Loader画像にアクセスしているだけなので問題ありませんが、ピクセルデータにアクセスしようとURLLoaderBINARYているモードでは機能しないため、セキュリティエラーが発生します。を介してピクセル データにアクセスしようとすると、Loaderおそらく同じエラーが発生します。

背後にアクセスせずにロードするかBitmapData(フィルターの適用などを含む)、クロスドメインファイルを使用します

于 2013-10-30T12:55:26.160 に答える