AS3 UILoader:负载从未完成

时间:2011-09-03 17:31:35

标签: flash actionscript-3 image loading uiloader

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

imdb返回的URL很长,包含几个特殊字符,因此我猜它没有加载因为这个。 以下是有问题的错误(还包含示例网址):

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

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

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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