dimensb
19.06.2012, 19:31
Добрый день
Есть общий класс-контейнер для загрузки SWF, то есть он может содержать любой SWF файл, который содержится во внутреннем объекте MovieClip.
Для клонирования пытаюсь использовать подход, описанный по ссылке http://chargedweb.com/labs/2010/02/20/duplicatemovieclip-is-back-to-as3/ (с созданием нового Loader'а и загрузкой в него данных через метод loadBytes).
Для тестирования используются все обработчики событий, чтобы отследить процесс.
При вызове loadBytes видим следующее
[ProgressEvent type="progress" bubbles=false cancelable=false eventPhase=2 bytesLoaded=0 bytesTotal=8099]
[ProgressEvent type="progress" bubbles=false cancelable=false eventPhase=2 bytesLoaded=8099 bytesTotal=8099],
но на этом все заканчивается, событие complete не вызывается и content нового Loader'а остается равным null.
Судя по всему проблема упоминалась несколько раз (http://forums.adobe.com/message/2691513#2691513), но однозначно работающего решения до сих пор нет.
Возможно кто-то сталкивался с похожей проблемой и знает как ее решить или знает возможные альтернативы.
Как вариант пробовал использовать метод mx.utils.ObjectUtil.copy, который имеет следующий код
public static function copy(value:Object):Object
{
var buffer:ByteArray = new ByteArray();
buffer.writeObject(value);
buffer.position = 0;
var result:Object = buffer.readObject();
return result;
}
,но результат так же равен null.
Как вариант остается создание нового объекта и загрузка в него такого-же SWF, но это лишняя работа и по коду и по загрузке, поскольку данные уже находятся в Flash Player и технически остается их только скопировать.
Заранее спасибо.
Есть общий класс-контейнер для загрузки SWF, то есть он может содержать любой SWF файл, который содержится во внутреннем объекте MovieClip.
Для клонирования пытаюсь использовать подход, описанный по ссылке http://chargedweb.com/labs/2010/02/20/duplicatemovieclip-is-back-to-as3/ (с созданием нового Loader'а и загрузкой в него данных через метод loadBytes).
Для тестирования используются все обработчики событий, чтобы отследить процесс.
При вызове loadBytes видим следующее
[ProgressEvent type="progress" bubbles=false cancelable=false eventPhase=2 bytesLoaded=0 bytesTotal=8099]
[ProgressEvent type="progress" bubbles=false cancelable=false eventPhase=2 bytesLoaded=8099 bytesTotal=8099],
но на этом все заканчивается, событие complete не вызывается и content нового Loader'а остается равным null.
Судя по всему проблема упоминалась несколько раз (http://forums.adobe.com/message/2691513#2691513), но однозначно работающего решения до сих пор нет.
Возможно кто-то сталкивался с похожей проблемой и знает как ее решить или знает возможные альтернативы.
Как вариант пробовал использовать метод mx.utils.ObjectUtil.copy, который имеет следующий код
public static function copy(value:Object):Object
{
var buffer:ByteArray = new ByteArray();
buffer.writeObject(value);
buffer.position = 0;
var result:Object = buffer.readObject();
return result;
}
,но результат так же равен null.
Как вариант остается создание нового объекта и загрузка в него такого-же SWF, но это лишняя работа и по коду и по загрузке, поскольку данные уже находятся в Flash Player и технически остается их только скопировать.
Заранее спасибо.