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

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

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

Регистрация: Nov 2001
Адрес: Казань
Сообщений: 118
По умолчанию Заливка градиентом beginGradientFill

Уважаемые, что-то я совсем запутался...
Не могу понять как работает ratios в заливке градиентом beginGradientFill(...)
Устанавливаю rations = [0, 255].
Рисую прямоугольник drawRect(0, 0, 300, 300).
Заливаю его градиентом от 0xff0000 до 0x0000ff.
Запускаю, и вижу, что как будто левый и правый края градиента находятся находятся где-то за пределами прямоугольника. А если изменить размеры размеры и заново перерисовать с тем же rations-параметром, то получается другая картина. В хелпе написано: "... может принимать значения от 0 до 255...", а нифига.
Вообщем не могу понять как он работает. Подскажите - что не так?

Вот пример:
Код AS3:
var square:Shape = new Shape();
square.graphics.lineStyle(1, 0x000000);
var rotateMatrix:Matrix = new Matrix();
rotateMatrix.rotate(90/180*Math.PI);
var colors:Array = [0xff0000, 0x0000ff];
var alphas:Array = [1, 1];
var rations:Array = [0, 255];
square.graphics.beginGradientFill(GradientType.LINEAR, colors, alphas, rations, rotateMatrix, SpreadMethod.PAD, InterpolationMethod.RGB);
square.graphics.drawRect(0, 0, 200, 300);
square.graphics.endFill();
addChild(square);
Результат:


Последний раз редактировалось Cybo; 15.05.2009 в 20:18.
Старый 15.05.2009, 20:34
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 2  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
матрица там похитрее нужна, для ее создания и метод есть
Код AS3:
rotateMatrix.createGradientBox(200, 300, Math.PI / 2, 0, 0);

Старый 16.05.2009, 02:56
Cybo вне форума Посмотреть профиль Отправить личное сообщение для Cybo Найти все сообщения от Cybo
  № 3  
Ответить с цитированием
Cybo

Регистрация: Nov 2001
Адрес: Казань
Сообщений: 118
ну даже без поворота... всё равно градиент начинается где-то за границами прямоугольника.

Добавлено через 14 часов 19 минут
Хм.... действительно, createGradientBox(...) - решил все проблемы.

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

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

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


 


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


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