点击此链接:http://inno_ebay.s3.amazonaws.com/xml-product-slide/index-2.html
此swf对象加载外部xml文件(由php脚本生成,该文件不在同一台计算机上),然后显示产品列表(缩略图和标题)。该脚本在我的本地计算机上运行正常,但是当更新到托管时,图像不会调整大小。在第一次我认为这是托管性能问题,所以我将其迁移到亚马逊s3,但它仍然无法正常工作。欢迎任何建议,谢谢!
答案 0 :(得分:1)
您的应用程序会引发安全访问冲突,这表示您尝试将图像从其他域加载到Flash所在的域。虽然可以使用crossdomain.xml文件,但在尝试操作远程加载的图像时会遇到麻烦。
我在这些情况下通常使用的解决方法是使用与Flash影片存在于同一域中的代理加载器。这是一个为您提取远程映像的服务器脚本(PHP,ASP,等等)。因为Flash只与代理脚本对话,所以它认为它加载的图像来自本地域。您需要咨询您的托管服务提供商,因为许多托管公司禁止使用代理脚本,即使是出于此类的良性目的。
这是一个简单的示例,尽管您可能希望为现实世界部署添加更多安全性:
proxyloader.php
<?php
if(!isset($_GET['path'])) {
echo 'Error';
exit;
}
$path = $_GET['path'];
$fileContent = file_get_contents($path);
if(substr($fileContent,0,6) == 'GIF89a' || substr($fileContent,0,6) == 'GIF87a') {
$contentType = 'image/gif';
} else if(substr($fileContent,1,3) == 'PNG') {
$contentType = 'image/png';
} else {
$hexContents = bin2hex($fileContent);
if(strtolower(substr($hexContents,0,4)) == 'ffd8') {
$contentType = 'image/jpeg';
} else {
echo "Error";
exit;
}
}
header("Content-Description: Proxied Image File");
header("Content-Type: $contentType");
header("Content-Disposition: attachment; filename=".$path);
echo $fileContent;
?>
你会在像这样的普通加载器中使用它:
var loader:Loader = new Loader()
var req:URLRequest = new URLRequest("proxyloader.php?path="+remoteFilePath);
loader.load(req);
答案 1 :(得分:0)
这是XML:
http://ebay.doufin.com/ebay_query/getItems.php?seller_id=lightupfoto&site_id=0&item_id=270738606484
这是一个项目:
<item link="http://cgi.ebay.com/2400w-Studio-Video-Red-Head-Continuous-Lighting-Kit-/270658608211" thumb="http://i.ebayimg.com/00/$(KGrHqZ,!lwE3JVj5IKsBODEto4sP!~~0_1.JPG?set_id=8800005007">
<a href="http://cgi.ebay.com/2400w-Studio-Video-Red-Head-Continuous-Lighting-Kit-/270658608211" target='_blank'>2400w Studio Video Red Head Continuous Lighting Kit</a>
</item>
这是缩略图:
这是400 x 400像素。
那么,请问您的问题是什么?