Просмотр полной версии : tween,изменение цвета
Добрый день.Хотел спросить как с помощью твина сделать такое:
например нужно чтобы мувик менял свой цвет плавно к чёрному, но неизвестно насколько % он сейчас черный.
То есть ситуация такая:при наведении он плавно меняется к белому например,при отведении к белому.
Мне нужна лишь строчка с твином.спасибо:)
За вас я писать не буду, но подсказать могу.
Вам надо завести переменную, которую твин будет менять от 0 до 100, и на событие onMotionChanged менять через Color.setTransform составляющие исходя из значений вашей перменной.
Molecula
12.02.2008, 21:01
Пример из Хелпа по изменению яркости:
import flash.filters.ColorMatrixFilter;
import mx.transitions.Tween;
import mx.transitions.easing.*;
System.security.allowDomain("http://www.helpexamples.com");
var mclListener:Object = new Object();
mclListener.onLoadInit = function(target_mc:MovieClip):Void {
// center movie clip instance on Stage
target_mc._x = (Stage.width - target_mc._width) / 2;
target_mc._y = (Stage.height - target_mc._height) / 2;
target_mc.watch("brightness", brightnessWatcher, target_mc);
// animate the target_mc movie clip between -100 and +100 brightness
var myTween:Tween = new Tween(target_mc, "brightness", Elastic.easeOut, 100, -100, 3, true);
myTween.onMotionFinished = function() {
this.yoyo();
};
};
this.createEmptyMovieClip("img_mc", 10);
var img_mcl:MovieClipLoader = new MovieClipLoader();
img_mcl.addListener(mclListener);
img_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", img_mc);
function brightnessWatcher(prop:String, oldVal:Number, newVal:Number, target_mc:MovieClip):Number {
var brightness_array:Array = [1, 0, 0, 0, newVal,
0, 1, 0, 0, newVal,
0, 0, 1, 0, newVal,
0, 0, 0, 1, 0];
target_mc.filters = [new ColorMatrixFilter(brightness_array)];
return newVal;
};
Вам остается лишь вместо яркости вставить свои функции и параметры.
Спасибо.Я не просил писать Вас мне код.просто я ни разу не работал с tween и поэтому не знаю её методов всяких и переменных которые надо внутри писать.И поэтому поппросил Вас написать мне сам tween.Спасибо. Разберусь сам:)но пока ждал ответат от одного человека сдела всё проще:) под чёрным разместил белый.И просто менял прозрачность:)
nOobCrafter
19.03.2009, 17:15
Может кому надо будет, на основе найденных тут материалов скрестил, ежа и ужа в результате получил довольно неплохой скриптик:
import flash.filters.ColorMatrixFilter;
import mx.transitions.Tween;
import mx.transitions.easing.*;
var r:Number = 77/255; // собсна цвета
var g:Number = 150/255; // собсна цвета
var b:Number = 25/255; // собсна цвета
var mclListener:Object = new Object();
mclListener.onLoadInit = function(target_mc:MovieClip):Void
{
// center movie clip instance on Stage
target_mc._x = (Stage.width - target_mc._width) / 2;
target_mc._y = (Stage.height - target_mc._height) / 2;
target_mc.watch("grayscale", grayscaleWatcher, target_mc);
// animate the target_mc movie clip between 0 and 1 grayscale
// 1 - серый спектр, 0 цветной.
var myTween:Tween = new Tween(target_mc, "grayscale", None.easeOut, 0, 1, 1, true);
target_mc.onRollOver = function()
{
var myTween:Tween = new Tween(this, "grayscale", None.easeOut, this.grayscale, 0, 1, true);
}
target_mc.onRollOut = function()
{
var myTween:Tween = new Tween(this, "grayscale", None.easeOut, this.grayscale, 1, 1, true);
}
};
this.createEmptyMovieClip("img_mc", 10);
var img_mcl:MovieClipLoader = new MovieClipLoader();
img_mcl.addListener(mclListener);
img_mcl.loadClip("inno_error.jpg", img_mc); // указываем картинку..
function grayscaleWatcher(prop:String, oldVal:Number, newVal:Number, target_mc:MovieClip):Number
{
target_mc.filters = [new ColorMatrixFilter([r * newVal + 1 - newVal, g * newVal, b * newVal, 0, 0,
r * newVal, g * newVal + 1 - newVal, b * newVal, 0, 0,
r * newVal, g * newVal, b * newVal + 1 - newVal, 0, 0,
0, 0, 0, 1, 0])];
return newVal;
};
а какой аналог свойства watch в AS3?
Пользуйтесь геттерами и сеттерами.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.