|
|
|||||
Аналог cacheAsBitmap
Динамически создаю текстуры, текстфильды и т.д. в Stage3D.
Задача: псевдо-фабрика попап-окон Текущая реализация: === Получеловеческим языком === - Медиатор отслеживающий события открытия окон, генерит экземпляр попап вьюшки, передавая в него событие( CustomEvent ) с параметрами - Псевдо-фабрика в зависимости от типа окна(субтип_события), генерит по инструкции, отображения - Инструкция вида Сгенерировать_Кнопку_С_Текстом -- Создаем контейнер -- Генерируем подложку -- Генерируем текст -- Атачим всё в контейнер -- Возвращаем контейнер - Возвращаемый ДО атачим на сцену === Языком AS3 === private function gameOver():void { var b1:DisplayObject = genButton(0x0,'score '+inject.member.maxlevelnow); var b2:DisplayObject = genButton(0x0,'money '+inject.physicData.nowcash); b2.y = b1.height*1.5; var view:Sprite = new Sprite(); view.addChild( b1 ); view.addChild( b2 ); view.y -=view.height; addChild( view ); } private function genButton(color:Number,label:String=''):DisplayObject { var size:Point = new Point(230,50); var b:Image = new Image(Texture.fromBitmapData(AssetGUI.getRoundside(color,size.x,size.y), false, false) ); var blabel:TextField = getNewTextfield(label,size.y*.7,0xFFFFFF); blabel.width = size.x; blabel.touchable = false; blabel.y = (size.y-blabel.height)*.5; var spr:Sprite = new Sprite(); spr.addChild( b ); spr.addChild( blabel ); return spr; } private function getNewTextfield(txt:String = '', fontSize:uint = 32, color:uint= 0x0):TextField { txt = txt.toLocaleUpperCase(); var textField:TextField = new TextField(screenWidth, fontSize+8, txt, AssetGUI.FONT_DEFAULT, fontSize, color); textField.hAlign = HAlign.CENTER; textField.vAlign = VAlign.CENTER; return textField; } Желаемая цель: Псевдофабрика GUI где дочерние объекты не перерисовуються Один из методов: Склеивать bitmapData'ы дочерених ДО, но как быть с импортом текстовых полей и т.д. Слишком муторно мне кажеться Вопрос 1: Нет ли метода/свойства позволяющее грубо-говоря склеить все дочерние ДО в единое целое? ( на подобие cacheAsBitmap или же рассторизации ) Вопрос 2: Как в данной ситуации поступаете вы? ( Не используя LayoutManager на основе конфигов (xml/json/etc) )
__________________
return this... |
|
|||||
Цитата:
Цитата:
Цитата:
|
|
|||||
Lorem ipsum
|
Про flatten не так давно (вроде тут же) выяснили, что он не срисовывает все в какую-то текстуру, а лишь кэширует матрицы или что-то в этом роде. Ну т.е. там такого профита, как от CacheAsBitmap не будет.
__________________
Поймай яблоко 2! |
|
|||||
Да еще заметил, после flatten(), "рендер" стаёт ручным. Иначе говоря, как можно отключить? ( в процессе, дочерние могут менять позицию, но происходит это раз в 10 секунд как минимум, повторный flatten() решает вопрос, но твинеры стают бесполезными.
__________________
return this... |
|
|||||
Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
|
Цитата:
|
|
|||||
Lorem ipsum
|
Так не совсем постоянно же:
__________________
Поймай яблоко 2! |
Часовой пояс GMT +4, время: 10:59. |
|
« Предыдущая тема | Следующая тема » |
|
|