![]() |
|
||||||||||
|
|||||
|
Регистрация: Jan 2010
Сообщений: 21
|
Собственно имеется задача, необходимо программно нарисовать прямоугольник с градиентом, а потом программно изменять его размеры и подвигать.
Написал вот такой код: var x = 0; var y = 400; var w = 500; var h = 100; var type:String = GradientType.LINEAR; var colors:Array = [0xF00000, 0x970000]; var alphas:Array = [1, 1]; var ratios:Array = [0, 255]; var gradientBoxMatrix:Matrix = new Matrix(); gradientBoxMatrix.createGradientBox(w, h, Math.PI/2, x, y ); var rect:Shape = new Shape(); rect.graphics.beginGradientFill(type, colors, alphas, ratios,gradientBoxMatrix); rect.graphics.lineStyle(1, 0x000000); rect.graphics.drawRect(x, y, w, h); rect.graphics.endFill(); addChild(rect); rect.height = 50; изменить height(rect.height=50), то он сильно сдвигается наверх. Собственно как это побороть? Или эту задачу лучше решить каким-нибудь другим способом? |
|
|||||
|
если нарисовать прямоугольник от начала координат шейпа, а сам шейп поставить в нужные координаты, то все будет проще:
gradientBoxMatrix.createGradientBox(w, h, Math.PI/2, 0, 0 ); var rect:Shape = new Shape(); rect.graphics.beginGradientFill(type, colors, alphas, ratios,gradientBoxMatrix); rect.graphics.lineStyle(1, 0x000000); rect.graphics.drawRect(0, 0, w, h); rect.x = x; rect.y = y; короче, геометрия и только |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 21
|
Спасибо, теперь нормально заработало
![]() Есть еще вот такой вопрос. Если мне нужно сделать одновременное плавное изменение высоты и ширины нескольких прямоугольников, то это делается через Timer и пошаговое изменение параметров? Или есть какой-то способ задать начальное-конечное состояние, чтобы прямоугольники изменялись автоматически в заданный промежуток времени? |
|
|||||
|
Цитата:
Добавлено через 54 секунды Цитата:
Я пользуюсь TweenLite.
__________________
Тут мужик танцует и поёт про флэш |
![]() |
![]() |
Часовой пояс GMT +4, время: 04:56. |
|
|
« Предыдущая тема | Следующая тема » |
|
|