PDA

Просмотр полной версии : как конвертировать ByteArray в MovieClip?


Андрей911
26.02.2012, 11:42
Можно ли как-то конвертировать ByteArray в MovieClip?
Например если флешка получена с сервера в виде бинарных данных через URLLoader или из другой флешки через LocalConnection.

Добавлено через 3 минуты
Пробовал вот так

var buffer:ByteArray=e.target.data;
var mc:MovieClip=buffer as MovieClip;

и выдается ошибка, невозможно конвертировать ByteArray в MovieClip

gloomyBrain
26.02.2012, 11:55
Воспользуйтесь методом Loader#loadBytes()
Ну и еще потребуется ApplicationDomain#getDefinition()

fish_r
26.02.2012, 12:36
import flash.display.MovieClip;
....
var buffer:ByteArray=e.target.data;
var mc:MovieClip=buffer as MovieClip;

var mc:MovieClip=buffer.readObject() as MovieClip;

Андрей911
26.02.2012, 12:47
Воспользуйтесь методом Loader#loadBytes()
Ну и еще потребуется ApplicationDomain#getDefinition()

Да вот так я еще не пробовал. Сейчас испытаем

Добавлено через 47 секунд

import flash.display.MovieClip;
....
var buffer:ByteArray=e.target.data;
var mc:MovieClip=buffer as MovieClip;

var mc:MovieClip=buffer.readObject() as MovieClip;


Так тоже не работает

fish_r
26.02.2012, 12:55
в смысле не работает? у меня работает, а у вас нет? ошибки есть? или что получается?

Добавлено через 3 минуты
Возможно действительно - ошибка при формировании или передачи бин.массива. Попробуйте это локально прокрутить. Т.е. сохранить в бинарный массив и восстановить из него, потом дальше будете смотреть.

Андрей911
26.02.2012, 13:00
Воспользуйтесь методом Loader#loadBytes()
Ну и еще потребуется ApplicationDomain#getDefinition()

Спасибо то что нужно. Этот способ сработал.

Добавлено через 3 минуты
в смысле не работает? у меня работает, а у вас нет? ошибки есть? или что получается?

Добавлено через 3 минуты
Возможно действительно - ошибка при формировании или передачи бин.массива. Попробуйте это локально прокрутить. Т.е. сохранить в бинарный массив и восстановить из него, потом дальше будете смотреть.

Я вообще пробовал просто загружал обычный swf не через Loader, а через URLLoader в бинарном формате и не сработало. Выдает ошибку невозможно конвертировать ByteArray в MovieClip. А как вы делали что получилось?
Может я что-то упустил

fish_r
26.02.2012, 13:19
Вы, похоже, пошли вообще не тем путем. Если вы грузите swf с объектами зачем возиться с бин.массивом?
Там объекты уже, как бы не в бинарном формате, т.е. они уже интерпретированы при получении как соотв. объекты, задача состоит лишь в том чтобы к ним обратиться и их использовать. gloomyBrain уже подсказал вам это.