Отправить ByteArray на JavaScript
Как отправить изображение jpg как ByteArray
от as3 до javascript? И как конвертировать ByteArray
для изображения в javascript?
3 ответов
реализации JavaScript и DOM текущих веб-браузеров на самом деле не имеют хороших механизмов для выполнения такого рода вещей.
лучше всего, чтобы ваш AS3 вернул URI протокола данных с версией изображения в кодировке base64. Современные браузеры (IE8+, FF2+ и т. д.) примут URI данных в качестве SRC тега IMG и отобразят содержащееся в нем изображение.
http://en.wikipedia.org/wiki/Data_URI_scheme
вам придется попросите эксперта AS3 объяснить, как превратить байтовый массив в строку с кодировкой base64, но это не может быть так сложно.
взять DisplayObject
(Sprite
/MovieClip
/ whatever) и преобразовать его в BitmapData:
myBitmapData.draw(mySprite);
преобразуйте это в PNG с помощью adobe AS3CoreLib
myByteArray = PNGEncoder.encode(myBitmapData);
преобразовать в base64 с помощью Flex на Base64Encoder:
myBase64Encoder.encodeBytes(myByteArray);
затем экспорт переменных actionscript в Javascript используя метода ExternalInterface.
в этом классе есть метод, который делает это:
вызов
var data:String = DisplayObjectUtils.getBase64ImageDataString();
вернет эту строку:
data:image/png;base64,...
затем вы устанавливаете src img в html на это значение.