Ваше приложение выдает нарушение безопасного доступа, которое предполагает, что вы пытаетесь загрузить изображение из другого домена в тот, на котором находится 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);