1

我正在尝试将电影中的封面艺术加载到 Flash CS5 中的 UILoader 组件中。我正在使用 IMDB API 来检索这些图像的 URL,但我知道这个代码有效,并且 URL 是有效的(将它们复制粘贴到浏览器中会显示它们应该显示的图像)。但是,当我将 UILoader 组件的源设置为这些 URL 之一时,我收到“加载从未完成”错误,并且图像不会显示。如果我用不属​​于 imdb 的随机其他图像位置替换 URL,它也可以正常加载。

imdb 返回的 URL 相当长,并且包含几个特殊字符,所以我猜它没有加载。以下是有问题的错误(还包含示例 URL):

错误 #2044:未处理的 ioError:。文本=错误 #2036:加载从未完成。网址:http: //ia.media-imdb.com/images/M/MV5BMjE5ODg1NTk3OF5BMl5BanBnXkFtZTcwNzA5NTMyNA@@._V1_SX320.jpg

关于如何将其加载到 UILoader 组件中的任何想法?

4

2 回答 2

2

您不能使用 UILoader,因为 imdb 上的跨域不允许访问:

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 传送到另一个新的 Loader().loadbytes(myByteArray)。这可以绕过对第一个装载机的限制。

这是这个想法的快速要点。https://gist.github.com/1204895

于 2011-09-09T01:51:29.383 回答