![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Feb 2008
Сообщений: 890
|
Монтируем растр в класс SomeClass на уровне статической константы:
Далее, если мы хотим воспользоваться этим растром: Вроде все хорошо, но что, если необходимо множественное использование этого растра, причем в различных экземплярах не проводится преобразование над картой пикселей, или если надо делать преобразование одинаковое для всех экземпляров растра? Тогда нам придется изменить класс с растром так: public class SomeClass { [Embed(source = 'img.png')] public static const IMG:Class; public static const IMG_BD:BitmapData = Bitmap(new SomeClass.IMG()).bitmapData; } var img0:Bitmap = new Bitmap(SomeClass.IMG_BD); ... var img100:Bitmap = new Bitmap(SomeClass.IMG_BD); Но при этом класс, куда мы монтировали растр, содержит в себе избыточную информацию: константы IMG и IMG_BD, которые по сути описывают одни и те же данные, но с разных аспектов. Вопрос: как избавиться от избыточности? (Как вмонтировать карту пикселей?) Или даже так: как вмонтировать карту пикселей без использования Flash IDE, а используя FD? Или я в корне все неверно понимаю?
__________________
скриптограф |
|
|||||
|
Специально тестировал
Цитата:
Цитата:
Другой вопрос - часто нужна только BitmapData и как-бы незачем создавать ради ее получения еще и Bitmap - так что от второго подхода хуже не будет это точно. Последний раз редактировалось expl; 12.03.2011 в 17:40. |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 890
|
Цитата:
Цитата:
Добавлено через 2 минуты Но если там реально оптимизация, то эта статья ей противоречит: http://help.adobe.com/ru_RU/as3/mobi...7189-7ffe.html
__________________
скриптограф |
|
|||||
|
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
Пометьте IMG как private и будет вам щастье...
Или я не уловил суть проблемы?
__________________
Загружаем картинки, минуя ошибки безопасности |
|
|||||
|
Modus ponens
|
Такой код компилируется и работает, но с предупреждением:
package { import flash.display.BitmapData; [Embed(source='../lib/image.jpeg')] /** * ... * @author wvxvw */ public class EmbeddedBitmapData extends BitmapData { public function EmbeddedBitmapData() { super(0, 0); } } } package { import flash.display.Bitmap; import flash.display.Sprite; /** * ... * @author wvxvw */ public class TestEmbedBitmap extends Sprite { public function TestEmbedBitmap() { super(); this.test(); } public function test():void { super.addChild(new Bitmap(new EmbeddedBitmapData())); } } }
__________________
Hell is the possibility of sanity |
|
|||||
|
Цитата:
Цитата:
И если создавать каджый раз ту же битмапдату через new BitmapData() , а старую сносить - это будет в 4 раза медленне, чем реиспользовать старую, предварительно почистив fillRect-ом. Тесты про различия на пару метров при создании кучи Bitmap'ов говорят только о том, чо эти битмапы каким-то хитрым образом используют одну и ту же вэмбеженную BitmapData. Только и всего. Кстати, если нарисовать что-то на одном из img.bitmapData, остальные изменятся? (руки не доходили протестить это) Последний раз редактировалось expl; 12.03.2011 в 22:21. |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 890
|
Цитата:
__________________
скриптограф |
|
|||||
|
т.е. получается, что
[Embed(... ...static var embbededBitmap; ...static var embededBitmapInstance = new embededBitmap() as Bitmap; ... var bitmap1:Bitmap = new Bitmap(Ebedings.embededBitmapInstance.bitmapData); var bitmap2:Bitmap = new Bitmap(Ebedings.embededBitmapInstance.bitmapData); Ведут себя одинаково при использовании, правильно понял? Последний раз редактировалось expl; 13.03.2011 в 00:11. |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 890
|
нет, не правильно - ведут себя разным образом, т.к. в первом случае все битмапы получают одну и ту же карту пикселей, а во втором случае создаются битмапы с "уникальными" картами пикселей
в кавычках потому, что нашелся ответ на загадочную оптимизацию из верхних постов: http://help.adobe.com/ru_RU/as3/mobi...7189-7ff9.html
__________________
скриптограф |
![]() |
![]() |
Часовой пояс GMT +4, время: 09:19. |
|
|
« Предыдущая тема | Следующая тема » |
|
|