Вложений: 1
Код:
import flash.geom.Matrix;
function drawBox (mc:MovieClip, w:Number, h:Number, pad:Number, col1:Number, col2:Number):Void {
mc.clear ();
var matrix:Matrix = new Matrix ();
matrix.createGradientBox (w, h, Math.PI / 4, 0, 0);
mc.beginGradientFill ("linear", [col1, col2], [100, 100], [0, 255], matrix);
mc.moveTo (pad, 0);
mc.lineTo (w, 0);
mc.lineTo (w, h - pad);
mc.curveTo (w, h, w - pad, h);
mc.lineTo (0, h);
mc.lineTo (0, pad);
mc.curveTo (0, 0, pad, 0);
mc.endFill ();
}
this.createEmptyMovieClip ("mc0", 0);
this.createEmptyMovieClip ("mc1", 1);
mc0._x = mc0._y = 0;
mc1._x = mc1._y = 50;
mc1._alpha = 0;
this.newTurn = function () {
this.d = 1;
drawBox (mc0, 800, 600, 80, random (0xFFFFFF), random (0xFFFFFF));
drawBox (mc1, 700, 500, 80, random (0xFFFFFF), random (0xFFFFFF));
};
this.onEnterFrame = function () {
this.mc1._alpha += this.d;
if (this.mc1._alpha >= 100) {
this.d = -1;
} else if (this.mc1._alpha <= 0) {
this.newTurn ();
}
};
this.newTurn ();
Слегка укоротил код, что бы понятней было (кстати, с большой буквы пишут только названия классов, названия функций и переменных начинаются с маленькой)
Закомментарьте первый вызов drawBox внутри newTurn (и Math.PI / 4 смените пока на ноль, чтобы голову на 45 градусов не наклонять :D). Теперь смотрите как меняется градиент на однородном фоне. Меняя альфу, вы сужаете цветовой диапазон, но размеры области заливки при этом не меняются. И чем меньше альфа, тем большая ширина в пикселях приходится на один цвет, но ширина для каждого цвета одинаковая.
Теперь убираем коммент и запускаем еще раз. Теперь у нас градинет начинает суммироваться с другим (из-за альфы), но ширина для каждого цвета разная. И меняя альфу ширина опять меняется, но не равномерно.
Я сделал семпл. Это увеличенная область одного куска в середины градиента, цвета случаные. Верхная часть (A), это альфа с значением 50, нижняя (B) - это альфа с значением 51 (на самом деле 50.78125).
Вложение 15915
Как видно, в одной и той же общей области, при разных значениях альфа, ширина подобластей с одним цветом совершенно разная.
|