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

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

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

Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
По умолчанию Как сделать плавный градиент

есть вот такой код.

Код AS3:
var type:String = GradientType.LINEAR; 
var colors:Array = [0xece3d4,0xd1be9e]; 
var alphas:Array = [1,1]; 
var ratios:Array = [0, 255]; 
var spreadMethod:String = SpreadMethod.PAD; 
var interp:String = InterpolationMethod.LINEAR_RGB; 
var focalPtRatio:Number = 0; 
 
var matrix:Matrix = new Matrix(); 
var boxWidth:Number = 20; 
var boxHeight:Number = 20; 
var boxRotation:Number = Math.PI/6.5; 
var tx:Number = 130; 
var ty:Number = 160; 
 
matrix.createGradientBox(boxWidth, boxHeight, boxRotation, tx, ty); 
graphics.lineStyle(0,0xd4c3a5,1,true,"normal",null,JointStyle.MITER);
graphics.beginGradientFill(type, colors, alphas, ratios,matrix, spreadMethod, interp,focalPtRatio); 
graphics.drawRect(100,100,75,120);
graphics.endFill();
как видно градиент резко переходит из одного цвета в другой, можно ли как-нибудь сделать чтобы он переходил ооооочень плавно, заранее спасибо.


Последний раз редактировалось Isfet; 09.07.2012 в 14:46.
Старый 09.07.2012, 15:11
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 2  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Зачем размер бокса 20х20? Сделайте 120х120 ))
__________________
Reality.getBounds(this);

Старый 09.07.2012, 17:46
Isfet вне форума Посмотреть профиль Отправить личное сообщение для Isfet Найти все сообщения от Isfet
  № 3  
Ответить с цитированием
Isfet

Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
я так понял ширина и высота этого бокса это и есть ширина и высота участка где будут "смешиваться " два цвета?

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Да, верно. Типа рамки масштабирования.
Которую можно растягивать, поворачивать и смещать.
От параметров собственно рисуемой фигуры вид градиента не зависит.
Его "географические" параметры задаются этим боксом.
__________________
Reality.getBounds(this);


Последний раз редактировалось Wolsh; 09.07.2012 в 20:24.
Старый 10.07.2012, 06:26
Isfet вне форума Посмотреть профиль Отправить личное сообщение для Isfet Найти все сообщения от Isfet
  № 5  
Ответить с цитированием
Isfet

Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
а вот допустим фигуры у меня бывают различного размера, как по размеру фигуры вычислить ширину и высоту градиент бокса, и центрировать его относительно фигуры?

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Хелп по Matrix#createGradientBox()
Ну тут уж школьный курс геометрии и тригонометрии. По сути надо определиться с точками, "откуда и докуда" тянуть градиент, вычислить расстояние между ними — ширину бокса (например Point.distance()) и угол "гипотенузы", то есть поворот бокса. А вот насчет смещений надо поэкспериментировать, не знаю, что берется за центр координат бокса при рисовании сложной ломаной фигуры.
__________________
Reality.getBounds(this);

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

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

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


 


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


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