Для проекта, над которым я работаю, я пытаюсь создать файл Flash с постоянно меняющимся градиентом цвета, который заполняет все окно браузера. Для лучшего объяснения, пожалуйста, перейдите по следующей ссылке:
Пример GradientTest
Не беспокойтесь о движущихся шарах, они только для того, чтобы бросить вызов frameRate фильма, который имеет максимум 60. Если вы посмотрите на фон, вы увидите эффект градиента, на который я ссылаюсь.
Метод, который я в настоящее время использую для создания анимации градиента, представляет собой простую анимацию формы на временной шкале Flash, которая выполняет анимацию между формами с различными цветами градиента. Я определенно не достигаю производительности, которую я хочу, используя эту технику.
Так что это скучный способ спросить, что люди думают, что это лучший способ создать такой градиент, изменяющий цвет, при этом получая лучшую производительность? Некоторые примеры могут быть через bitmapData или с использованием PixelBender, но я недостаточно разбираюсь в этих методах, чтобы понять, какая из них даст мне наилучшую производительность. Любая помощь будет оценена!
ПРИМЕЧАНИЕ: В комментариях ниже приведена ссылка на все файлы проекта, использованные в приведенном выше примере.
ОБНОВЛЕНИЕ:
Я разместил дополнительную версию примера с использованием кода zkarcher вместо моей анимации градиента на временной шкале для сравнения производительности каждого из них. Следует отметить, что моя версия (v1) всегда воспроизводит градиент, в то время как основанная на коде версия (v2) воспроизводит анимацию градиента только в течение 5 секунд при каждом нажатии.
Как новый пользователь, мне разрешена только одна ссылка на пост, поэтому, пожалуйста, простите необработанные URL
http://www.chrismalven.com/experiments/GradientTest/
http://www.chrismalven.com/experiments/GradientTest_v2/
Для тех, кто заинтересован в использовании версии кода анимации градиента zkarcher с TweenLite / TweenMax, замените ссылку Tweener на приведенный ниже код и обязательно импортируйте также плагин TweenMax ColorTransform:
// Load the TweenMax Class Libraries
import gs.*;
import gs.easing.*;
import gs.plugins.*;
TweenPlugin.activate([ColorTransformPlugin]);
TweenMax.to(
bmp, // Object to tween
changeSpeed, // Duration of the Tween
{colorTransform:
{
redMultiplier: (o2.r-o1.r)/255.0,
greenMultiplier: (o2.g-o1.g)/255.0,
blueMultiplier: (o2.b-o1.b)/255.0,
alphaMultiplier: 1,
redOffset: o1.r,
greenOffset: o1.g,
blueOffset: o1.b,
alphaOffset: 0
},
ease:Quad.easeOut,
}
);