Показать сообщение отдельно
Старый 06.08.2007, 19:49
voy22 вне форума Посмотреть профиль Отправить личное сообщение для voy22 Найти все сообщения от voy22
  № 9  
Ответить с цитированием
voy22
 
Аватар для voy22

Регистрация: Jul 2007
Сообщений: 37
Наткнулся еще на одну проблемму. Вот Код:
Код:
var r:Number = 90; // Угол поворота радиальной заливки
var sh:Shape = new Shape();
var m:Matrix = new Matrix();
m.createGradientBox(50, 200, 0, 0, 0);
m.rotate(r * Math.PI/180);

sh.graphics.beginGradientFill('linear', [0xff0000, 0x0000ff], [1,1], [0, 255], m);
sh.graphics.lineTo(200, 0);
sh.graphics.lineTo(200, 50);
sh.graphics.lineTo(0, 50);
sh.graphics.lineTo(0, 0);
sh.graphics.endFill();

addChild(sh);
Смотрим... В прямоугольнике идет радиальная заливка, сверху в низ, и все равномерно. Теперь переменной "r" задаем "0" или "180"... и центр радиальной заливки смещается от центра самой фигуры.
Все решается таким путем: m.createGradientBox(200, 50, 0, 0, 0);
Но это решаемо, если угол поворота прямой. Но мне нужен любой угол, и что бы центр заливки оставался в центре фигуры. )*( чую, что нужна хитрая формула для расчета первых двух значений createGradientBox, в зависимости от габаритов фигуры и угла наклона. Может есть готовые решения?


Последний раз редактировалось voy22; 07.08.2007 в 11:15.