Статьи

Как создать градиенты с помощью ActionScript

Для настройки градиентов, созданных с помощью кода AS3, доступно множество параметров. В этой статье мы рассмотрим различные варианты интерактивного приложения, которое можно использовать для изменения этих параметров на лету.


Поиграйте с опциями в SWF выше. Левый прямоугольник показывает результирующий градиент, каким он будет при рисовании в прямоугольнике 50х50. Правый прямоугольник показывает матрицу с текущей настройкой. Сравните их, изучая все настройки, и все это будет иметь смысл.

Когда вы создали понравившийся градиент, нажмите « Click here for code чтобы увидеть Click here for code чтобы увидеть список кода AS3, который вы можете скопировать и вставить в свой собственный проект, чтобы сгенерировать созданный вами градиент.

В генерацию кода были добавлены дополнительные переменные, чтобы вы могли легко изменять внешний вид градиента.

  • gradientScaling , используйте это, чтобы увеличить размер.
  • gradientOffsetX , используйте это, чтобы переместить градиент по горизонтали.
  • gradientOffsetY , используйте это, чтобы переместить градиент по вертикали.

Чтобы создать градиент, вам нужно использовать graphics объект Shape или любой его подкласс. Затем нам нужно создать градиентную заливку, вызвав

1
graphics.beginGradientFill()

Эти параметры обязательны:

  • type:String
  • colors:Array
  • alphas:Array
  • ratios:Array

Эти параметры являются необязательными:

  • matrix:Matrix = null
  • spreadMethod:String = "pad"
  • interpolationMethod:String = "rgb"
  • focalPointRatio:Number = 0

Я пойду, хотя каждый параметр позже. Если вы предпочитаете поиграть с ним, пытаясь понять это самостоятельно, я сделал SWF именно по этой причине, и он может даже генерировать функциональный код для созданного вами градиента. Проверьте это в верхней части статьи.

Для полной документации по созданию градиентов, смотрите LiveDocs по теме .


flash.display.GradientType

Установите тип градиента с помощью: flash.display.GradientType


Эти три массива должны совпадать. Поэтому, если вы хотите три цвета, вам также нужно указать три альфы и три соотношения.

Массив цветов нуждается в шестнадцатеричных значениях. (например, 0xFF0000 для красного)

Массиву alphas нужны числа от (включая) от 0 до 1.

Массиву отношений нужны числа от (до) и включающие от 0 до 255. Они должны быть в правильном порядке, поэтому [100,0,200] недопустимо, но [0,100,200] -.

Вот пример того, что происходит, когда вы меняете отношения:

AS3 градиенты отношения

Матрица определяет, как будет выглядеть градиент. Если вы не определите его, он будет иметь ширину 200 пикселей. Вместо этого, если вы хотите контролировать, как будет выглядеть градиент, вам нужно будет создать новую матрицу:

1
var gradientMatrix:Matrix = new Matrix ( ) ;

Затем вам нужно создать градиентную рамку на матрице, вызвав:

1
gradientMatrix.createGradientBox

Требуются следующие параметры:

  • width:Number
  • height:Number

Эти параметры являются необязательными:

  • rotation:Number = 0
  • tx:Number = 0
  • ty:Number = 0

width — это ширина матрицы (не зависит от поворота матрицы).

height — высота матрицы (не зависит от поворота матрицы).

rotation — это вращение матрицы в радианах .

tx — горизонтальное смещение матрицы (не зависит от поворота матрицы).

ty — вертикальное смещение матрицы (не зависит от поворота матрицы).


Если матрица каким-то образом не покрывает всю область, которую вы рисуете, остальное нужно будет заполнить. Есть три различных способа управления этим:

AS3 градиенты распространения

Установите метод распространения с помощью: flash.display.SpreadMethod


Так рассчитывается цветовой переход, есть два варианта:

flash.display.InterpolationMethod

Установите метод интерполяции с помощью: flash.display.InterpolationMethod


Это имеет эффект, только если вы используете радиальные градиенты. Он принимает значения от -1 до 1. Включая число больше 1, не беспокойтесь, по умолчанию он будет равен 1. На это также влияет вращение (так что вы можете сделать так, чтобы оно находилось в верхней части установка фокальной точки на -1 и вращение на Pi / 2).

Фокус градиента вспышки

Когда вы закончите, вам нужно нарисовать заливку. Это может быть выполнено любым из методов рисования графической заливки, например beginFill () .

Если вы не используете (0,0) в качестве начальной точки для метода рисования, вам нужно помнить об изменении значений tx и ty матрицы.


Теперь вы должны быть готовы к новым приключениям с созданными в коде градиентами.

Спасибо за прочтение!