Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Flex

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 26.02.2008, 18:17
NePridymal вне форума Посмотреть профиль Отправить личное сообщение для NePridymal Найти все сообщения от NePridymal
  № 1  
Ответить с цитированием
NePridymal
 
Аватар для NePridymal

Регистрация: Apr 2007
Сообщений: 143
Отправить сообщение для NePridymal с помощью ICQ
Question Градиентный цвет бекграунда TitleWindow

Доброго времени суток. Собственно в заголовке вопрос...
Как сделать градиентный цвет бекграунда в компоненте TitleWindow?
Пока что ничего лучше чем подложить какой-нить канвас с программно-нарисованным градиентом - не придумал... Но такой вариант мне не очень нравится. Может есть стандартные способы какие-то, а то хелп что-то в этом вопросе помочь не может?

Старый 26.02.2008, 19:47
FlexOkeks вне форума Посмотреть профиль Отправить личное сообщение для FlexOkeks Найти все сообщения от FlexOkeks
  № 2  
Ответить с цитированием
FlexOkeks
 
Аватар для FlexOkeks

Регистрация: 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);
}
хотя не совсем уверен что это правильно, рисовать прямо в updateDisplayList, но вроде сработало как и было нужно.
__________________
<!-- КРЭКС ПЭКС ФЛЭКС -->

Старый 26.02.2008, 20:51
NePridymal вне форума Посмотреть профиль Отправить личное сообщение для NePridymal Найти все сообщения от NePridymal
  № 3  
Ответить с цитированием
NePridymal
 
Аватар для NePridymal

Регистрация: Apr 2007
Сообщений: 143
Отправить сообщение для NePridymal с помощью ICQ
Та дело в том, что так в TitleWindow почему-то рисовать не хочет... Функция вызывается, а ничего не рисует...

Старый 27.02.2008, 17:13
FlexOkeks вне форума Посмотреть профиль Отправить личное сообщение для FlexOkeks Найти все сообщения от FlexOkeks
  № 4  
Ответить с цитированием
FlexOkeks
 
Аватар для FlexOkeks

Регистрация: Sep 2007
Адрес: Путенбург
Сообщений: 147
Да не, он рисует, просто стайл backgroundAlpha по умолчанию 1.0 и он этот бэкграунд повер кладет, поэтому наших художеств и не видно. Возможно дело в этом, и надо поставить:
Код:
setStyle("backgroundAlpha", 0);
__________________
<!-- КРЭКС ПЭКС ФЛЭКС -->

Старый 28.02.2008, 12:50
kutuzov вне форума Посмотреть профиль Отправить личное сообщение для kutuzov Найти все сообщения от kutuzov
  № 5  
Ответить с цитированием
kutuzov
 
Аватар для kutuzov

Регистрация: 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);
}

Старый 28.02.2008, 14:26
FlexOkeks вне форума Посмотреть профиль Отправить личное сообщение для FlexOkeks Найти все сообщения от FlexOkeks
  № 6  
Ответить с цитированием
FlexOkeks
 
Аватар для FlexOkeks

Регистрация: Sep 2007
Адрес: Путенбург
Сообщений: 147
Цитата:
Сообщение от kutuzov
создать спрайт в updateDisplayList и сделать addChild он не дает
и не должен давать, для добавления надо переписывать другой протектный метод createChildren, и кроме того иметь ввиду, что непосредственно в панель или другой контейнер добавлять спрайты нельзя, можно только UIComponent или его наследников.
__________________
<!-- КРЭКС ПЭКС ФЛЭКС -->

Старый 29.02.2008, 00:37
kutuzov вне форума Посмотреть профиль Отправить личное сообщение для kutuzov Найти все сообщения от kutuzov
  № 7  
Ответить с цитированием
kutuzov
 
Аватар для kutuzov

Регистрация: 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>
CSS
Код:
ApplicationControlBar {
	paddingLeft: 10;
	paddingRight: 10;
	paddingTop: 10;
	paddingBottom: 10;
	highlightAlphas: 0, 0;
	backgroundColor: #a5b5be;
	backgroundAlpha: 1;
	cornerRadius: 10;
	shadowDistance: 2;
}

Создать новую тему Ответ Часовой пояс GMT +4, время: 06:13.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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