![]() |
как сделать копию мувиклипа
Здравствуйте!
Я загружаю swf-ки и засовываю их в массив, этот массив играет роль библиотеки мувиков. То есть мне нужно произвольное количество раз копировать мувик из этого самого массива. А передачи значения во флеше на сколько я знаю нет... Как выйти из такого положения? Заранее спасибо! |
окакой передаче данных вы говорите?
а насчет копирования есть такой метод getDefenitionByName |
Код AS3:
|
ну передача в функцию по ссылке\значению, имелось ввиду то, что во flash нет передачи по значению, а есть только по ссылке
чтото я плохо понял про getDefenitionByName и то, как он может мне пригодится... я ведь говорю о копировании мувиков (просто мувиков без кода внутри) |
реализуйте свой метод копирования
Код AS3:
|
тогда как его реализовать, можно пример пожалуйсто?
сам я не догадаюсь просто, как можно скопировать мувик... |
если каждой свфке задать свой уникальный класс, то
Код AS3:
|
Тогда уж легче задать в этой swf-ке произвольное кол-во классов, и получать их экземпляры с помощью
Код AS3:
Цитата:
Здесь loader – это экземпляр Loader, которым вы грузили swf-библиотеку. Также, если вы знаете базовый класс, то экземпляр лучше типизировать. Пусть, например, мы знаем, что мы храним в либе мувики либо спрайты (т.е. наследники DisplayObject). Тогда лучше будет написать Код AS3:
Метод же clone() раелизовывать нужно тогда, когда требуется скопировать объект вместе с его состоянием, то есть учитывая изменения, произошедшие в нём с момента создания. |
а можно ли проделать все тоже самое только с учетом того, что я сначала загружаю мувики, затем засовываю их в массив, а уже потом (из массива) мне нужно скопировать экземпляры этих мувиков?
метод не подходит только изза того, что мувики я загружаю последовательно, и в лоадере останется инфа только о последнем... |
конечно можно, вы можете в массив запихивать экземпляры класса Class, хотя я вот точно не знаю, будут ли они доступны после того как вы сделаете лоадеру unload
|
вряд ли...
хотя кто его знает) а вообще, зачем выгружать библиотеку, если её планируется использовать? :) |
хмм... неужели никто с подобным не сталкивался? когда нужно разместить произвольное количество независимых копий одной и той же swf-ки?
|
Цитата:
чем вас не устраивает этот? к тому же вам никто не мешает для каждой загружаемой свфки использовать свой собственный лоадер.. |
Цитата:
Во-вторых, несколькими постами выше я вам показал метод, использующий всего лишь одну swf-библиотеку с набором классов. В этом случае нужен всего лишь один загрузчик. И, наконец, никто не мешает вам объединить эти два метода: грузить несколько библиотек, в каждой из которых содержится набор классов (наимер, разные темы графического оформления, наборы персонажей, ...) |
Цитата:
|
unload не влияет на содержимое applicationDomain. Как говорится,
|
Цитата:
А что будет в случае загрузки нового содержимого в тот же лоадер? И как тогда избавиться от уже не используемых классов? |
Definitions [of application domain]. The definition can be that of a class, a namespace, or a function.
Небольшие исследования показали, что при живой ссылке на application domain не происходит выгрузка definitions, даже если вы сделали loader.unload() и убили сам loader. Но стоит зарезать последнюю ссылку на аппдомен, то он тут же будет съеден GC при очередной чистке. А без ссылки на аппдомен никак не получить definition, т.е. это бессмыслено. Если грузить в ApplicationDomain.currentDomain, то definitions, по понятным причинам, живут до кончины приложения. |
Понятно, спасибо за полезную информацию)
|
Цитата:
|
Вложений: 1
Цитата:
Во вложении совсем немного модифицированный для наглядности пример из адобовского хелпа, демонстрирующий обратное. да, у меня с этим словом тоже всегда проблемы =) |
Чорд. Ну не купил (и не крякнул... пока.. тока тссс...!) я себе CS4. Конвертер посоветуйте =)
А код оформлен супер! |
Вложений: 1
Цитата:
Если флеш не врёт, что может сохранять в формате CS3, то это должно заработать) |
Code review:
Зачем Вам каждый раз создавать инстансы типа ClassLoader? По переопределению. Я же сказал, что конфликтный класс обламывается, и пролетает как фанера над Парижем. В Вашем коде _тожесамое_ =) З.Ы. Экстендз Sprite - это банально =) Даёшь реальный дефинишн!! |
Эт не я их создаю. Это господа из Abobe, так что все жалобы к ним :)
Цитата:
Цитата:
|
Цитата:
|
http://martinfowler.com/articles/injection.html
Добавлено через 21 минуту up по-моему =) есть мысль, что пока существует объект, созданный из дефинишина аппдомена, и этот объект имеет ссылку на loaderInfo.applicationDomain, то аппдомен здравствует и существует благодаря такому объекту. |
| Часовой пояс GMT +4, время: 07:54. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.