![]() |
Как загрузить и размножить?
Хочется мне красивое решение следующей задачки стандартными средствами. И желательно, чтобы шустро работало.
Из внешнего источника загружается картинка (грубо говоря, текстура). Она каким-то образом трансформируется (поворт, сдвиг и т.д.) и помещается на мувик. После этого нужно наклепать произвольное количество копий данного мувика. В AS 2.0 задача была решена несколько ректально: в мувик загружалась текстура, сам мувик трансформировался. Затем создавался битмап, на нём рисовался битмап и уже этот битмап нашлёпывал везде, где надо. Слегка почитав про AS 3.0 я было уже обрадывался, что есть более красивое решение (благо появились off-screen мувики и спрайты). Но почитав хелп подробнее, я не обнаружил способа клонировать мувики. duplicateMovie и attachMovie удалили, а вот никакого clone() взамен вроде бы не дали. Ещё раз задачу, немного более формально. Требуется отобразить на экране N спрайтов, имеющих разные x, y и "z", но одинаковое графическое содержимое. Причём содержимое состоит из загружаемой графики. Загрузка должна производиться только один раз. Пока писал сообщение, родилась одна мысля - создать несколько спрайтов-контейнеров с разными координатами и в них добавлять спрайт-оригинал. Т.е. что-то вроде такого: Код:
// спрайт-оригинал. пока просто рисованныйА клонировать нельзя, да это бы и плохо сказалось на потреблении памяти... Так есть ли какой-то способ? |
Что мешает клонировать битмап, как и было написано?
|
Возникает ряд пробем:
1. Данные копии должны реагировать на щелчки мыши. Поэтому нарисованные битмапы всё равно нужно было обёртывать в мувиклипы (да и ряду других причин). Но вот hitZone по умолчанию у них получался прямоугольный. А для того, чтобы сделать кастомный hitZone, опять же нужны однотипные динамические мувики. Т.е. возвращаемся к той же задаче. 2. Изображение можно зумить. Пусть не произвольно, а в дискретные значения масштаба, но надо. Поэтому, чтобы качество картинки было более-менее приемлимым, приходилось рисовать несколько разных битмапов - для разных зумов, и все их держать в памяти. Память порой кушалась ооочень сильно. |
Можно создать кучу наследников Sprite с одними и теми же параметрами.
|
Ээээ... Что-то не понял идею.
Вот если рассмотреть выше приведённый пример. Есть спрайт, на котором нарисован красный квадратик (или что-нибудь другое). Нужно отобразить на экране, скажет, сотню таких спрайтов. Причём: 1. не рисовать заново, а именно скопировать существующий. 2. должна быть возможность сделать их кликабельными. Вобщем, нужно что-то вроде attachMovie, но мувик, который "аттачиться" находиться не в библиотеке, а создаётся динамически или загружается. |
Копия кушает столько же, сколько и новый созданный спрайт.
Что конкретно загружается? |
Да загрузка даже не так важна.
Допустим, не загружается, а просто рисуется через graphics. Интересует именно вопрос: появились ли в AS 3.0 средства для клонирования динамически созданных мувиков? P.S. Но вообще загружается произвольная графика - как в виде .jpg так и в виде .swf После этого она может быть ещё и как-то преобразована. |
Хм, не знаю, я и в AS2 никогда не использовал duplicateMovieClip. Да и в AS3 другая идеология. В общем методов для клонирования таких мувиков нет.
|
Цитата:
Цитата:
Если бы можно было делать addChild() одного и того же клипа в разные клипы или если был бы clone(), то проблем бы не было. Увы :( |
| Часовой пояс GMT +4, время: 13:08. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.