![]() |
Собрать полупрозрачный слой из элементов с перекрытиями
В нативном флеше я бы сделал просто - создал спрайт, у него в graphics нарисовал бы черных прямоугольников, не заботясь о перекрытиях, потом дал бы всему спрайту альфу 0.5 и получил бы полупрозрачный слой как нужно.
Если же в старлинговский спрайт накидать черных quad'ов, то получается потом как в обычном флеше в случае с мувиками - каждый из них приобретает прозрачность и если кто кого перекрывает, то это хорошо видно. Может я чего-то упустил и там есть какой-нибудь параметр на этот счет? ЗЫ. Рисовать в битмапдату и затем делать из нее старлинговский Image -не очень подходит. |
Рисовать в битмапу и делать Image не понадобится, скорее всего Sprite#flatten() поможет, хоть он и не совсем для этого. Но если твои квады не статичны, это будет доп. нагрузкой, а не оптимизацией, как написано в документации.
|
Квады статичны. Спрайт собирается один раз, какое-то время живет, потом прибивается.
Занятно, я сегодня смотрел на этот метод, но не сопоставил его со своей задачей. |
- может поиграть методами наложения? (ADD/MULTIPLE) хотя это не айс для производительности
- RenderTexture - отрисовать все в текстуру, потом выводить, технически там не должно оставаться информации о наложении - отрисовать квадраты через Starling.Graphics расширение, правда их нельзя вращать будет, там антиальязинг не пашет (https://github.com/StarlingGraphics/...nsion-Graphics) |
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
2. сделал flatten(); 3. задал спрайту альфу; Так делал? |
Да, естественно.
Попробовал flatten в обоих вариантах (true,false). Ставил и до альфы и после. Если я ничего не путаю - это примерно как cashAsBitmap. Кэширует, но не запекает. В общем, в итоге я решил задачу в частном случае (рассчитал математически, чтобы квады друг друга не перекрывали). Над общим решением позже подумаю. |
Цитата:
|
| Часовой пояс GMT +4, время: 14:57. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.