我在做什么
您好我在将外部图像加载到我的Flash(构建器)应用程序时遇到问题。 为了显示图像,我使用了BitmapImage,并启用了平滑功能:
<s:BitmapImage id="image" smooth="true" smoothingQuality="high" width="100%" height="100%" fillMode="clip" />
我还使用新的flex4.6 scaleMode ZOOM显示缩略图,如下所示:
<s:Image id="thumbnail" scaleMode="zoom" smooth="true" smoothingQuality="default" />
我使用SWFLoader预加载外部图像,因为我需要存储原始图像的宽度和高度
问题
当我在本地测试我的应用程序时,一切正常!但是,当我从我的网络域运行它时,我发现它显示出问题。对于在同一域上运行的图像和来自Flickr的图像=没问题。但是来自imageshack的其他图片显示出以下问题:
原因吗
我不确定是什么导致了这个问题,但我在图片来源中看到的唯一区别在于域策略。 Flickr的crossdomain.xml允许所有http://farm1.static.flickr.com/crossdomain.xml不同于imageshack.us http://www.imageshack.us/crossdomain.xml
如果这是原因,那么我不明白为什么图像仍然被加载但是很糟糕。有人知道究竟发生了什么吗?有解决方案吗日Thnx。
答案 0 :(得分:2)
在未启用正确策略的情况下加载图像跨域存在一定的限制。 Flash将加载数据,但不允许任何操作,包括平滑。
有很多方法可以解决这个问题。您可以使用服务器端代理,通过本地php或asp页面加载图像。它不是最快的解决方案,但它会起作用。
您还可以尝试使用LoadBytes加载图像,然后将字节数组传递给Loader对象。它不如使用Flex组件那么漂亮,但它应该为您恢复一些控制。