tag:blogger.com,1999:blog-25528681162651304.post4965735807750773990..comments2023-04-24T17:56:33.683+03:00Comments on Flash-разработка: Дублируем DisplayObject. AS3Anonymoushttp://www.blogger.com/profile/13778770709453656580noreply@blogger.comBlogger6125tag:blogger.com,1999:blog-25528681162651304.post-36571788299478026052008-11-03T01:04:00.000+03:002008-11-03T01:04:00.000+03:00аа. ..да для BitmapData вроде не пашет.аа. ..да для BitmapData вроде не пашет.foregroundhttps://www.blogger.com/profile/11320766351507712662noreply@blogger.comtag:blogger.com,1999:blog-25528681162651304.post-14622624758786690872008-11-03T01:02:00.000+03:002008-11-03T01:02:00.000+03:002 racerсори если что )"Ембед с параметромmimeType=...2 racer<BR/>сори если что )<BR/><BR/>"Ембед с параметром<BR/>mimeType="application/octet-stream" - работает превосходно - никакой видимой разницы - зашита SWFка или загружается."<BR/><BR/>тут вобще-то я имел ввиду не эмбед, а правильную реализацию лодера. Правильнее было бы отделить процесс декодирования от загрузки, а не делать кучу классов занимающихся одним и тем же.<BR/>Эмбед нельзя сконфигурировать через отдельный файл настроек насколько я знаю .. хотя было бы неплохо.<BR/>Попробуй все-таки несколько registerClassAlias для подклассов, перед самим копированием. У меня получалось с URLRequest кажется.foregroundhttps://www.blogger.com/profile/11320766351507712662noreply@blogger.comtag:blogger.com,1999:blog-25528681162651304.post-7756082195909393922008-11-03T00:13:00.000+03:002008-11-03T00:13:00.000+03:00Спасибо, foreground. Есть заметки:> сериализаци...Спасибо, foreground. Есть заметки:<BR/>> сериализация<BR/>Любопытно, код в точности из <I>mx.utils.ObjectUtil.copy()</I> с добавлением <I>registerClassAlias(getClassAlias(value), value.constructor);</I>. Я как раз начал эксперементы с сериализации через ObjectUtil.copy, но безуспешно. Через сериализацию нельзя скопировать объект клипа полностью, т.к. она не предусматривает копирование объектов, на которые ссылаются свойства копируемого объекта. Скопируются просто ссылки. Да, собственно, в хелпе для ObjectUtil.copy написано - предназначен для копирования объектов данных, типа элементов коллекций, а UIComponent так не копируется.<BR/>Чтобы копировать сложный класс, нужно рекурсивно пройтись по всем ссылкам и сохранить все вложенные объекты, а затем их опять восстановить. Кроме того, встает вопрос - а если не все ссылки надо копировать? Типа ссылки на root, stage и т.п.<BR/>Поэтому, общего решения быть не может.<BR/>А Адоби не предусмотрел, а ведь мог бы сделать метод DisplayObject.clone();<BR/><BR/>>Да с загрузкой swf-а не Loader-ом ...<BR/>Ембед с параметром<BR/><I>mimeType="application/octet-stream"</I> - работает превосходно - никакой видимой разницы - зашита SWFка или загружается.<BR/><BR/>>пользуйся интерфейсами для подгрузки ...<BR/>Это есть смысл делать, если нужно подгружать и обрабатывать что-то с программным кодом. Например, некие программные модули, из которых строится приложение или что-то типа плагинов.<BR/>В моем случае, меня интересуют абсолютно свободные от этого "недостатка" чисто графические библиотеки. Весь код - в управляющей флэшке. И задача то простейшая - клонирование, которая была решена в AS2 для любого мувика.Anonymoushttps://www.blogger.com/profile/13778770709453656580noreply@blogger.comtag:blogger.com,1999:blog-25528681162651304.post-113270385633093332008-11-02T22:52:00.000+03:002008-11-02T22:52:00.000+03:00racer, думаю не стоит пока во AS3 налегать на копи...racer, думаю не стоит пока во AS3 налегать на копирование произвольных мувиков. Во-первых всё уже придумано :-) - сериализация. Во-вторых тут не только мувик нормально продублировать нельзя, но и просто сложный класс (может быть я не прав.. тогда укусите меня).<BR/>Есть такой подход, пишу навсякий (если вдруг ты не в курсе):<BR/><A><BR/>public static function copy(value: Object): Object<BR/>{<BR/> var buffer: ByteArray = new ByteArray();<BR/> <BR/> registerClassAlias(getClassAlias(value), value.constructor);<BR/> buffer.writeObject(value);<BR/> buffer.position = 0;<BR/> return buffer.readObject();<BR/>}<BR/></A><BR/>Такая конструкция требует flash.net.registerClassAlias для всех подклассов, на сколько я понял.<BR/>Да с загрузкой swf-а не Loader-ом меня тоже сильно ущимило, как пользователя AS3. Я был просто в недоумении и пребываю в нём до сих пор ). Почему адобовцы пренебрегли в данном случае простыми принципами ООП разделения полномочий. Вобщем конечно косяков хватает. И шарп во многом выглядит привлекательнее, хотябы гарбэджем. Но я делаю скидку на то что первый блин все-таки комом.<BR/>Напоследок в тему.. )) пользуйся интерфейсами для подгрузки заранее известного по функциональности мувика (совет я читал от __etc).foregroundhttps://www.blogger.com/profile/11320766351507712662noreply@blogger.comtag:blogger.com,1999:blog-25528681162651304.post-20634919556090746002008-10-30T14:16:00.000+03:002008-10-30T14:16:00.000+03:00Я наверное не совсем правильно выразился. Сорри. Д...Я наверное не совсем правильно выразился. Сорри. Да в принципе, я и не говорил "Шаблонный проект". Под "шаблонной структурой приложения" в данном случае следует понимать приложение, работающее с неким шаблоном, подгружаемым извне. То есть "шаблон" - это некий стандарт, которому следует структура внешней флэшки.<BR/>Ну вот смотри. Есть шаблонная флэшка. Она грузится/внедряется в приложение. Приложение после ее загрузки/получения сканирует эту флэшку, навешивает на кнопки события, вносит тексты, выставляет другие свойства, создает управляющие классы, поручая им для пользования дисплей-объекты (тобишь клипы).<BR/>Так вот, к примеру, один из управляющих классов должен генерить в свой контролируемый клип некоторое количество клипов-деталей. <BR/>Откуда ему их взять? Как ему сказать какие клипы-детали он дожен генерить? Задача состоит в том, чтобы сделать это с минимумом завязок на код. Простое и понятное решение - просто кинуть в контролируемый клип "образцы" тех клипов, которые нужно нагенерить. Управляющий класс их сосканирует и еще нагенерит сколько надо. Универсально и понятно для flash-верстальщика.Anonymoushttps://www.blogger.com/profile/13778770709453656580noreply@blogger.comtag:blogger.com,1999:blog-25528681162651304.post-36417490251689890042008-10-30T13:41:00.000+03:002008-10-30T13:41:00.000+03:00я думаю в "шаблонных проектах" надо делать класс-ш...я думаю в "шаблонных проектах" надо делать класс-шаблон и создавать его инстансы, а не дублировать инстансы. немогу представить себе ситуацию, где понадобилось бы прямое дублирование. разде что нарисованный программно шейп.Anonymoushttps://www.blogger.com/profile/00568859332818797665noreply@blogger.com