Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   [Starling] Собрать полупрозрачный слой из элементов с перекрытиями (http://www.flasher.ru/forum/showthread.php?t=210570)

mikhailk 31.03.2015 18:56

Собрать полупрозрачный слой из элементов с перекрытиями
 
В нативном флеше я бы сделал просто - создал спрайт, у него в graphics нарисовал бы черных прямоугольников, не заботясь о перекрытиях, потом дал бы всему спрайту альфу 0.5 и получил бы полупрозрачный слой как нужно.

Если же в старлинговский спрайт накидать черных quad'ов, то получается потом как в обычном флеше в случае с мувиками - каждый из них приобретает прозрачность и если кто кого перекрывает, то это хорошо видно.

Может я чего-то упустил и там есть какой-нибудь параметр на этот счет?

ЗЫ. Рисовать в битмапдату и затем делать из нее старлинговский Image -не очень подходит.

Zebestov 31.03.2015 22:03

Рисовать в битмапу и делать Image не понадобится, скорее всего Sprite#flatten() поможет, хоть он и не совсем для этого. Но если твои квады не статичны, это будет доп. нагрузкой, а не оптимизацией, как написано в документации.

mikhailk 31.03.2015 23:02

Квады статичны. Спрайт собирается один раз, какое-то время живет, потом прибивается.

Занятно, я сегодня смотрел на этот метод, но не сопоставил его со своей задачей.

ShockWave512 01.04.2015 01:28

- может поиграть методами наложения? (ADD/MULTIPLE) хотя это не айс для производительности

- RenderTexture - отрисовать все в текстуру, потом выводить, технически там не должно оставаться информации о наложении

- отрисовать квадраты через Starling.Graphics расширение, правда их нельзя вращать будет, там антиальязинг не пашет (https://github.com/StarlingGraphics/...nsion-Graphics)

mikhailk 01.04.2015 11:50

Цитата:

скорее всего Sprite#flatten() поможет
Нет, не помогло. Перекрытия остаются.

Цитата:

- может поиграть методами наложения? (ADD/MULTIPLE)
Аналогично.

Цитата:

RenderTexture
Текстура вроде как сбрасывается при сворачивании в трей? В хэлпе написано, что она не восстанавливается при восстановлении контента.

Цитата:

отрисовать квадраты через Starling.Graphics
Те же фаберже, вид сбоку. Там, насколько я понимаю, эмуляция graphics средствами Starling'а.

Zebestov 01.04.2015 12:11

Цитата:

Сообщение от mikhailk (Сообщение 1180850)
Нет, не помогло. Перекрытия остаются.

1. нарисовал непрозрачные квады;
2. сделал flatten();
3. задал спрайту альфу;

Так делал?

mikhailk 01.04.2015 12:28

Да, естественно.
Попробовал flatten в обоих вариантах (true,false).
Ставил и до альфы и после.

Если я ничего не путаю - это примерно как cashAsBitmap.
Кэширует, но не запекает.

В общем, в итоге я решил задачу в частном случае (рассчитал математически, чтобы квады друг друга не перекрывали).
Над общим решением позже подумаю.

Zebestov 01.04.2015 12:33

Цитата:

Сообщение от mikhailk (Сообщение 1180853)
Если я ничего не путаю - это примерно как cashAsBitmap.
Кэширует, но не запекает.

Ага. На запекание и был мой расчет. Буду знать.


Часовой пояс GMT +4, время: 14:57.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.