Для проекта, над которым я работаю, я пытаюсь создать файл Flash с постоянно изменяющимся цветом градиентом, который заполняет все окно браузера. Для лучшего объяснения смотрите по следующей ссылке:Создание наиболее эффективного полноэкранного цветного градиента
Не беспокойтесь о движущихся шаров, это только там, чтобы бросить вызов FrameRate фильма, который имеет максимум 60. Если вы смотрите на заднем плане вы можете увидеть эффект градиента, о котором я говорю.
Метод, который я сейчас использую для создания анимации градиента, представляет собой простую форму на временной шкале Flash, которая объединяется между фигурами с разными цветами градиента. Я определенно не достигаю производительности, я хочу использовать эту технику.
Так что это долгий способ расспросить, что люди думают, что это лучший способ создать такой градиент с изменением цвета при повышении производительности? Некоторые примеры могут быть с помощью bitmapData или с использованием PixelBender, но я недостаточно разбираюсь в этих методах, чтобы знать, что принесет мне лучшую производительность. Любая помощь будет оценена!
ПРИМЕЧАНИЕ: В приведенных ниже комментариях приведена ссылка на все файлы проекта, используемые в примере, опубликованном выше.
ОБНОВЛЕНИЕ:
Я разместил дополнительную версию примера использования кода zkarcher в месте моей временной шкалы на основе градиента анимации для сравнения производительности каждого. Следует отметить, что моя версия (v1) всегда играет градиент, тогда как версия на основе кода (v2) воспроизводит анимацию градиента в течение 5 секунд каждый раз, когда вы нажимаете.
Как новый пользователь я только позволил одну ссылку за пост так, пожалуйста, простите исходные адреса
http://www.chrismalven.com/experiments/GradientTest/
http://www.chrismalven.com/experiments/GradientTest_v2/
Для тех, кто заинтересован в использовании версии zqarcher's gradient-tweening code с 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, } );
http://gradient-test.googlecode.com/files/GradientTest.zip – cmal
После немного больше исследований, похоже, единственный метод, который может предложить значительно лучше производительность использование PixelBender. Я ничего не знаю о PixelBender, но я собираюсь изучить основы и посмотреть, могу ли я придумать что угодно. – cmal