![]() |
TabBar skin
Есть сложность создания скина для закладок.
На картинки показана проблема: http://lh5.ggpht.com/_266X1AuWjcs/TI...DFbXw/tabs.jpg Подскажите способ реализации подобного. Пока на ум пришло только перекрывать метод рисования верхнего бордера у NavigatorContent... Может есть более простые способы? |
На самом деле это не так просто сделать, точнее, объяснить не получится.
У вас шаблон в векторе ? Можете скинуть свой шаблон, я попытаюсь сделать, это как вариант. |
Bond007, доброго времни суток.
К сожалению у меня растр. Скин для табов рисовал с помощью <s:Rect ... radiusX="6"> Может что-то скинуть другое? Проблема стоит довольно остро. Спасибо. |
В скине проверьте, скорее всего ваш бордер просто перекрывается, либо выложите код скина.
|
Код:
Код AS3:
Код AS3:
Код AS3:
Код AS3:
http://lh5.ggpht.com/_266X1AuWjcs/TI...hQMlE/tabs.jpg |
Похоже я вас неправильно понял в первый раз. Если вам нужно сделать так что бы бордюр не был виден, то вариантов всего три.
1. Отказаться от прозрачности, т.е. сделать псевдопрозрачность (фон ставится в скин элементов управления). 2. Отказаться от бордюра, или переписать метод рисования бордюра у контейнера. 3. Имитировать бордюр фильтрами (затратно для процессора, контур вокруг всего элемента управления) Добавлено через 4 минуты P.S. Есть еще один вариант, рисовать бордюр отдельно, опираясь на координаты и положения контейнера и табов (под табом я понимаю TabButton) |
Ну или рисовать border с пробелом, или можно его стирать (BlendMode.ERASE у стриающего элемента, BlendMode.LAYER у контейнера, который с border'ом). Муторно, конечно
|
alatar, фон к сожалению делать в скине нельзя, пока сделан градиент от черного к прозрачному который закрывает артефакт - но смотрится конечно плохо.
fljot, в доке написано что "This process requires that the blendMode property of the parent display object be set to flash.display.BlendMode.LAYER" (BlendMode.ERASE) - но viewstack не является parent'ом для TabBar. Попробовал в скине Tab: Код AS3:
Код AS3:
Может что-то надо в коде перестроить? Или сделать обернуть ViewStack и TabBar в контейнер с тем самым бордером и кнопке делать erase уже... Попробую... Добавлено через 2 часа 2 минуты Помог совет fljot, добавить только обший контейнер надо для бордера: Код: Код AS3:
Код AS3:
Код AS3:
И есть еще одна небольшая проблема - у выделенной кнопки должен быть бордер - но только на left, top, right сторонах. Подскажите как задать s:stroke только на нужных сторонах, или исключить его на bottom? |
Я вообще-то думал эту затиралку добавить во ViewStack) и LAYER задавать ViewStack'у же
|
А какому элементу blendMode="erase" и как определять его ширину?
Небольшой пример, если можно? |
| Часовой пояс GMT +4, время: 08:09. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.