1

映画のカバー アートを Flash CS5 の UILoader コンポーネントに読み込もうとしています。私は IMDB API を使用してこれらの画像への URL を取得していますが、このコードが機能し、URL が有効であることを知っています (ブラウザーにコピーして貼り付けると、画像が表示されます)。しかし、UILoader コンポーネントのソースをこれらの URL のいずれかに設定すると、「読み込みが完了していません」というエラーが発生し、画像が表示されません。URL を imdb に属さないランダムな他の画像の場所に置き換えると、問題なく読み込まれます。

imdb によって返される URL はかなり長く、いくつかの特殊文字が含まれているため、それが原因で読み込まれていないと推測されます。以下は問題のエラーです (URL の例も含まれています)。

エラー #2044: 未処理の ioError:。text=エラー #2036: 読み込みが完了しませんでした。URL: http://ia.media-imdb.com/images/M/MV5BMjE5ODg1NTk3OF5BMl5BanBnXkFtZTcwNzA5NTMyNA@@._V1_SX320.jpg

これをUILoaderコンポーネントにロードする方法について何か考えはありますか?

4

2 に答える 2

2

imdb のクロスドメインがアクセスを許可しないため、UILoader を使用できません。

http://ia.media-imdb.com/crossdomain.xml

<?xml version="1.0"?> 
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"> 
<cross-domain-policy> 
  <allow-access-from domain="*.images-amazon.com"/> 
  <allow-access-from domain="images.amazon.com"/> 
  <allow-access-from domain="g-images.amazon.com"/> 
  <allow-access-from domain="*.ssl-images-amazon.com"/> 
  <allow-access-from domain="*.amazon.com"/> 
  <allow-access-from domain="*.bebe.com"/> 
  <allow-access-from domain="cea.target.com"/> 
  <allow-access-from domain="xyccea.target.com"/> 
  <allow-access-from domain="testcea.target.com"/> 
  <allow-access-from domain="devcea.target.com"/> 
  <allow-access-from domain="sites.target.com"/> 
</cross-domain-policy>
于 2011-09-03T17:42:48.970 に答える
1

Loader クラスは、イメージをクロスドメインでロードできます。唯一の制限は、画像を再描画または変更できないことです。http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Loader.html?filter_flash=cs5&filter_flashplayer=10.2&filter_air=2.6

変更が必要な場合は、byteArray を別の new Loader().loadbytes(myByteArray) にパイプしてみてください。これにより、最初のローダーに課せられた制限を回避できます。

これがアイデアの簡単な要点です。https://gist.github.com/1204895

于 2011-09-09T01:51:29.383 に答える