|
|
|||||
[+1 18.03.08]
Регистрация: Nov 2006
Сообщений: 223
|
Как загрузить и размножить?
Хочется мне красивое решение следующей задачки стандартными средствами. И желательно, чтобы шустро работало.
Из внешнего источника загружается картинка (грубо говоря, текстура). Она каким-то образом трансформируется (поворт, сдвиг и т.д.) и помещается на мувик. После этого нужно наклепать произвольное количество копий данного мувика. В AS 2.0 задача была решена несколько ректально: в мувик загружалась текстура, сам мувик трансформировался. Затем создавался битмап, на нём рисовался битмап и уже этот битмап нашлёпывал везде, где надо. Слегка почитав про AS 3.0 я было уже обрадывался, что есть более красивое решение (благо появились off-screen мувики и спрайты). Но почитав хелп подробнее, я не обнаружил способа клонировать мувики. duplicateMovie и attachMovie удалили, а вот никакого clone() взамен вроде бы не дали. Ещё раз задачу, немного более формально. Требуется отобразить на экране N спрайтов, имеющих разные x, y и "z", но одинаковое графическое содержимое. Причём содержимое состоит из загружаемой графики. Загрузка должна производиться только один раз. Пока писал сообщение, родилась одна мысля - создать несколько спрайтов-контейнеров с разными координатами и в них добавлять спрайт-оригинал. Т.е. что-то вроде такого: // спрайт-оригинал. пока просто рисованный var original = new Sprite(); original.graphics.beginFill(0xff0000,1); original.graphics.drawRect(0,0,100,100); original.graphics.endFill(); // создаём два контейнера var container1 = new Sprite(); var container2 = new Sprite(); container1.addChild(original); container2.addChild(original); // один из них правее holder1.x = 150; // и отображаем this.addChild(container1); this.addChild(container2); А клонировать нельзя, да это бы и плохо сказалось на потреблении памяти... Так есть ли какой-то способ? |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Что мешает клонировать битмап, как и было написано?
|
|
|||||
[+1 18.03.08]
Регистрация: Nov 2006
Сообщений: 223
|
Возникает ряд пробем:
1. Данные копии должны реагировать на щелчки мыши. Поэтому нарисованные битмапы всё равно нужно было обёртывать в мувиклипы (да и ряду других причин). Но вот hitZone по умолчанию у них получался прямоугольный. А для того, чтобы сделать кастомный hitZone, опять же нужны однотипные динамические мувики. Т.е. возвращаемся к той же задаче. 2. Изображение можно зумить. Пусть не произвольно, а в дискретные значения масштаба, но надо. Поэтому, чтобы качество картинки было более-менее приемлимым, приходилось рисовать несколько разных битмапов - для разных зумов, и все их держать в памяти. Память порой кушалась ооочень сильно. |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Можно создать кучу наследников Sprite с одними и теми же параметрами.
|
|
|||||
[+1 18.03.08]
Регистрация: Nov 2006
Сообщений: 223
|
Ээээ... Что-то не понял идею.
Вот если рассмотреть выше приведённый пример. Есть спрайт, на котором нарисован красный квадратик (или что-нибудь другое). Нужно отобразить на экране, скажет, сотню таких спрайтов. Причём: 1. не рисовать заново, а именно скопировать существующий. 2. должна быть возможность сделать их кликабельными. Вобщем, нужно что-то вроде attachMovie, но мувик, который "аттачиться" находиться не в библиотеке, а создаётся динамически или загружается. |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Копия кушает столько же, сколько и новый созданный спрайт.
Что конкретно загружается? |
|
|||||
[+1 18.03.08]
Регистрация: Nov 2006
Сообщений: 223
|
Да загрузка даже не так важна.
Допустим, не загружается, а просто рисуется через graphics. Интересует именно вопрос: появились ли в AS 3.0 средства для клонирования динамически созданных мувиков? P.S. Но вообще загружается произвольная графика - как в виде .jpg так и в виде .swf После этого она может быть ещё и как-то преобразована. Последний раз редактировалось WindWalker; 17.05.2007 в 22:07. |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Хм, не знаю, я и в AS2 никогда не использовал duplicateMovieClip. Да и в AS3 другая идеология. В общем методов для клонирования таких мувиков нет.
|
|
|||||
[+1 18.03.08]
Регистрация: Nov 2006
Сообщений: 223
|
Цитата:
Цитата:
Если бы можно было делать addChild() одного и того же клипа в разные клипы или если был бы clone(), то проблем бы не было. Увы Последний раз редактировалось WindWalker; 18.05.2007 в 00:00. |
Часовой пояс GMT +4, время: 17:33. |
|
« Предыдущая тема | Следующая тема » |
|
|