![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Доброго времени суток. Собственно в заголовке вопрос...
Как сделать градиентный цвет бекграунда в компоненте TitleWindow? Пока что ничего лучше чем подложить какой-нить канвас с программно-нарисованным градиентом - не придумал... Но такой вариант мне не очень нравится. Может есть стандартные способы какие-то, а то хелп что-то в этом вопросе помочь не может? |
|
|||||
|
Регистрация: Sep 2007
Адрес: Путенбург
Сообщений: 147
|
я нарисовал в компоненте так:
protected var _colors:Array = [0xFFFFF,0xFFCC00,0x00FFDD,0x000000];
protected var _alphas:Array = [1,1,1,1];
protected var _ratios:Array = [0,64,164,255];
protected var _gradientBox:Matrix = new Matrix();
protected override function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
super.updateDisplayList(unscaledWidth, unscaledHeight);
_gradientBox.createGradientBox(unscaledWidth, unscaledHeight , 0, 0, 0);
drawRoundRect(0, 0, unscaledWidth, unscaledHeight, null, _colors, _alphas, _gradientBox, GradientType.LINEAR, _ratios);
}
__________________
<!-- КРЭКС ПЭКС ФЛЭКС --> |
|
|||||
|
Та дело в том, что так в TitleWindow почему-то рисовать не хочет... Функция вызывается, а ничего не рисует...
![]() |
|
|||||
|
Регистрация: Sep 2007
Адрес: Путенбург
Сообщений: 147
|
Да не, он рисует, просто стайл backgroundAlpha по умолчанию 1.0 и он этот бэкграунд повер кладет, поэтому наших художеств и не видно. Возможно дело в этом, и надо поставить:
__________________
<!-- КРЭКС ПЭКС ФЛЭКС --> |
|
|||||
|
Регистрация: Jul 2005
Сообщений: 135
|
а как быть если я хочу нарисовать что-либо поверх бэкграунда?
создать спрайт в updateDisplayList и сделать addChild он не дает import mx.core.FlexSprite;
protected override function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
super.updateDisplayList(unscaledWidth, unscaledHeight);
var whiteBox:FlexSprite = new FlexSprite();
var g:Graphics = whiteBox.graphics;
g.beginFill(0xFFFFFF);
g.drawRect(0, 0, 100, 100);
g.endFill()
addChild(whiteBox);
}
|
|
|||||
|
Регистрация: Sep 2007
Адрес: Путенбург
Сообщений: 147
|
Цитата:
__________________
<!-- КРЭКС ПЭКС ФЛЭКС --> |
|
|||||
|
Регистрация: Jul 2005
Сообщений: 135
|
вот все хотел реализовать такой highlight как во Flex Style Explorer
![]() <?xml version="1.0" encoding="utf-8"?>
<mx:ApplicationControlBar xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import mx.core.UIComponent;
private var white:UIComponent;
private var box:Sprite;
private var masked:Sprite;
private var g:Graphics;
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{
super.updateDisplayList(unscaledWidth, unscaledHeight);
var radius:Number = getStyle("cornerRadius");
var hei:Number = 7;
g = box.graphics;
g.clear();
g.beginFill(0xFFFFFF);
g.lineTo(0, hei);
g.curveTo(unscaledWidth/2, hei+5, unscaledWidth, hei);
g.lineTo(unscaledWidth, 0);
g.endFill();
g = masked.graphics;
g.clear();
g.beginFill(0xFF0000);
g.drawRoundRectComplex(0, 0, unscaledWidth, box.height<radius ? radius : box.height, radius, radius, 0, 0);
g.endFill();
}
override protected function createChildren():void {
super.createChildren();
if (!white){
white = new UIComponent();
white.y = 1;
white.alpha = .1;
box = new Sprite();
masked = new Sprite();
box.mask = masked;
white.addChild(box);
white.addChild(masked);
rawChildren.addChild(white);
}
}
]]>
</mx:Script>
</mx:ApplicationControlBar>
|
![]() |
![]() |
Часовой пояс GMT +4, время: 06:13. |
|
|
« Предыдущая тема | Следующая тема » |
|
|