Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Скопировать MovieClip, не через создание экземпляра (http://www.flasher.ru/forum/showthread.php?t=135670)

SeaQuest 28.01.2010 22:15

Скопировать MovieClip, не через создание экземпляра
 
Так уж встала задача, в угоду сервису, с которым приходится взаимодействовать.
Как скопировать MovieClip с векторной графикой, сохранив векторность этой графики?
Еще раз скажу, что через new ClassName() делать копии низзя.
Глубокое копирование не получается, возвращает null:
Код AS3:

private function internal_deepCopy(source:*):*
                {
                        var copier:ByteArray = new ByteArray();
                        copier.writeObject(source);
                        copier.position = 0;
                        return(copier.readObject());
                }


etc 28.01.2010 23:08

А почему это «низзя»? У вас выбора нет, собственно. И ByteArray никогда DisplayObject-ы не копировал.

SeaQuest 29.01.2010 14:14

Развернуто задача выглядит так:
- есть много векторной графики
- каждый элемент такой векторной графики помещается в свою swf-ку
- в приложении где используются эти элементы требуется копировать изображения, но чтобы при этом они оставались векторные, т.е. Shape.
- для решения этой задачи в каждой swf-ке графика помещалась в MovieClip, а сам мувик экспортился, приобретая свое уникальное имя класса. Для копирования просто создавался новый экземпляр этого класса. Ну просто песня.

Но так получилось, что потребовали, чтобы было меньше работы с уникальностью имен классов. Т.е. мне запрещают использовать уникальные имена.
Решение увидел в том, чтобы каждому мувику в swf-ке присваивать одно единственное для всех имя. Каждый раз при загрузке предыдущий класс будет затираться следующим, но если я найду способ копировать содержимое т.е. мувик или шейп, то я буду просто копировать это содержимое в библиотеку с уже уникальными именами.
Иначе, было бы замечательно, если бы при загрузке я мог изменять имя класса на уникальное.


Часовой пояс GMT +4, время: 09:08.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.