2

私のactionscript 3.0プロジェクトでこの画像読み込みの問題に頭を悩ませているようには見えません。crossDomain.xml の設定方法に関係があると思われます。問題は、YouTube ムービーのサムネイル画像をhttp://img.youtube.com/からフラッシュにロードして、スタンドアロン (ローカル) プレーヤーで SWF をテスト/実行するときに完全に正常に表示できることです。

しかし、SWF をアップロードして Web 経由でテストすると、サンドボックス エラーとセキュリティ違反が表示されます。

これが私のcrossDomain.xmlです(サーバーのルートに保存されています):

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd>
<cross-domain-policy>
<site-control permitted-cross-domain-policies="all"/>
<allow-access-from domain="*" to-ports="*"/>
<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

ここにいくつかの AS3 があります:

Security.loadPolicyFile('http://youtube.com/crossdomain.xml');
// LoaderContext used
externalLoaderCntxt = new LoaderContext( true, new ApplicationDomain() );
loader.load( http://img.youtube.com/vi/nTYcgnqAzqE/2.jpg, externalLoaderCntxt );

crossDomain.xml と loaderContext の現在の構成で発生するエラーは次のとおりです。

SecurityError: Error #2123: Security sandbox violation: LoaderInfo.content: http://*.*.com/bin/PipedLoader_test.swf?ver=ef331d0dcb1e1ef59b325969ebadafa4 cannot access http://img.youtube.com/vi/nTYcgnqAzqE/2.jpg. No policy files granted access.
at flash.display::LoaderInfo/get content()
at *.pipedLoader::PipedLoader/onImageLoadComplete()[*\pipedLoader\PipedLoader.as:915]

checkPolicyFiles を false にせずに LoaderContext を作成しようとしました。

これらのセキュリティ サンドボックス違反を取り除く方法はありますか? または、使用されている crossDomain.xml が YouTube.com によってホストされているため、変更できるものはありませんか?

はしごの場合、これらのサムネイル画像をどのように読み込んで使用しますか? ポリシー ファイルで loaderInfo.content プロパティを制限できますか?

どんな助けでも素晴らしいでしょう、ありがとう! ツービット

4

1 に答える 1

3

img.youtube.com の代わりにhttp://i.ytimg.comを使用してみてください- http://i.ytimg.com/crossdomain.xmlにワイルドカード ドメイン アクセスがあることを確認できます。

于 2012-02-22T21:18:14.353 に答える