Javascript с загрузчиком изображений Flash (AS3), ExternalInterface.call
Flash-проект, над которым я сейчас работаю, требует, чтобы я сделал серию скриншотов сцены и загрузил эти скриншоты на сервер. Я написал код AS3, вставленный ниже, чтобы отправить скриншоты (преобразованные в jpegs) в скрипт обработки php (imageprocess.php).
for (var i:int=0; i<sourceArray.length; i++)
{
var jpgEncoder:JPGEncoder = new JPGEncoder(10);
var jpgStream:ByteArray = jpgEncoder.encode(sourceArray[i]);
var header:URLRequestHeader = new URLRequestHeader("Content-type", "application/octet-stream");
var jpgURLRequest:URLRequest = new URLRequest("imageprocess.php?name=drawing" + i +".jpg");
jpgURLRequest.requestHeaders.push(header);
jpgURLRequest.method = URLRequestMethod.POST;
jpgURLRequest.data = jpgStream;
navigateToURL(jpgURLRequest, "_blank"); //switch to ExternalInterface.call("someJS")
}
К сожалению, я обнаружил, что navigateToURL может функционировать только один раз за кадр (http://www.actionscript.org/forums/showthread.php3?t=250594). Похоже, мне придется использовать ExternalInterface.call плюс некоторый Javascript для загрузки нескольких скриншотов, но я не уверен, как будет выглядеть этот код Javascript. Будет ли кто-нибудь любезен предоставить пример JS, который мог бы сделать каждый из скриншотов, которые я конвертировал, и отправить их в файл php? Буду очень признателен за любые советы.
2 ответа
URLLoader может решить вашу проблему. Не используйте navatetourl для загрузки, действительно интересно. http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/URLLoader.html
Вам не нужно использовать JavaScript и т. Д. Для загрузки изображений, почему бы вам просто не создать функцию JavaScript, чтобы открыть новую ссылку в браузере (например, всплывающее окно)? Копия navigateToURL
функция, но тогда в JavaScript? Полагаю, это будет более быстрое решение? Открыв окна с JavaScript, прочитайте эту ссылку.