![]() |
Создание битмапы через функцию
Объявляю переменную
Код AS3:
Код AS3:
Код AS3:
Трэйс при этом выдает: Код:
[object Bitmap] nullВсе дело в том, что хочется немного унифицировать этот процесс. Можно было бы попробовать хранить данные в массиве, но это ИМХО не правильный подход, т.к. массив не всегда является оптимальным решением, в моем к примеру случае помимо однородных объектов(исходя из цели, для чего собственно все это и затеял), где допустимо применение массива, есть значительное количество объектов, которые по своей природе уникальны и на сцене будут находиться в единственном числе. |
А где вы задаёте значение переменной myBitmapData?
|
по поводу null =) ну все правильно.
ты ссылку на myBtimapData передал, но она пока ни на какой экземпляр не ссылается — ты ж не сделал myBitmapData = new BitmapData(...) где-то раньше по коду, того и null. |
я гружу битмапы так:
Код AS3:
|
udaaff, перед конструктором класса
Zebestov, я это как бы интуитивно догадываюсь, но не понимаю. Да, у меня в этой переменной ничего нет, но если я в функции bmdSaver ее создам, а потом обращусь не как к аргументу функции, а как к своей ранее объявленной переменной (т.е. не bmd, а myBitmapData), то в итоге всt равно получу null. Собственно в этом и затык :( mickfallout, спасибо за код, у меня по нему парочка вопросов: Что делает new Resources()? Не вижу этой функции. К тому же в хэндлере вы сразу добавляете данные, а мне необходимо что б эти данные хранились, а вытащить на сцену их в нужный именно мне момент времени. В параметрах функции getBitmap вообще запутался, откуда что, да и в самой функции тоже :( |
Цитата:
getBitmap можно так расписать =) думаю так понятнее Код AS3:
Цитата:
Код AS3:
|
Цитата:
на Вашем месте я бы при первом вызове помещал битмапдаты в словарь и при последующих вызовах возвращал бы ссылку на неё. Если нужно удаление - в словаре храните счётчик, который инкрементируется при создании битмапы - уменьшается при удалении. в 0 - вызываем dispose. такой подход позволяет существенно сократить расходы памяти если используется большое количество одинаковых битмапдат. У меня есть где-то класс менеджера ресурсов работающий по этому принципу. Найду-выложу. что-то вроде собственного Сборщика Мусора. Код AS3:
в какой момент вызывать очистку в кастомном коллекторе - тоже вопрос... Можно наверное как-то следить за использованной памятью и на превышении некоего предела вызывать очистку. Тут главное не зациклить т.к. очистка может ничего не высвободить, а критерий вызова останется.. Например вызывать проверку по таймеру. |
Цитата:
Код AS3:
|
Код AS3:
достаточно только имени imageName Код AS3:
Код AS3:
|
Всем спасибо, буду разбираться
Котяра, на сколько я помню по доке, то мы не можем создать битмапдату с шириной или высотой равной или меньше 0 |
| Часовой пояс GMT +4, время: 21:17. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.