2005/05/12 | [练习]颜色渐进变化效果
类别(flash学习) | 评论(3) | 阅读(729) | 发表于 14:54
//--------code by ycccc8202------------
//--------2005.5-------------
//------- ColorMove-------------
class ColorMove extends Color {
private var _obj:MovieClip;
private var _speed:Number;
private var _start:Boolean;
private var speed_r, speed_g, speed_b, obj_a, obj_b, r_over, g_over, b_over, color_a, color_b;
public function ColorMove(obj:MovieClip, speed:Number, color_a:Number, color_b:Number) {
super(obj);
this._obj = obj;
this._speed = speed;
this.color_a = color_a;
this.color_b = color_b;
colorRun();
}
private function colorRun() {
var This = this;
_obj.onEnterFrame = function() {
trace("run");
This.setTransform(This.colorChange());
if (This.getR_over()+This.getG_over()+This.getG_over() == 3) {
delete this.onEnterFrame;
trace("over");
}
};
}
private function setTransform(obj:Object) {
super.setTransform(obj);
}
private function getR_over() {
return r_over;
}
private function getG_over() {
return g_over;
}
private function getB_over() {
return b_over;
}
private function hexConvert(hex) {
var r = hex >> 16;
var g = (hex ^ (r << 16)) >> 8;
var b = (hex ^ (r << 16)) ^ (g << 8);
return {r:r, g:g, b:b};
}
private function colorChange() {
if (!_start) {
obj_a = hexConvert(color_a);
obj_b = hexConvert(color_b);
speed_r = ((obj_b.r-obj_a.r)/Math.abs(obj_b.r-obj_a.r))*_speed;
speed_g = ((obj_b.g-obj_a.g)/Math.abs(obj_b.g-obj_a.g))*_speed;
speed_b = ((obj_b.b-obj_a.b)/Math.abs(obj_b.b-obj_a.b))*_speed;
_start = true;
}
if (Math.abs(obj_b.r-obj_a.r)>_speed) {
obj_a.r += speed_r;
} else {
obj_a.r = obj_b.r;
r_over = true;
}
if (Math.abs(obj_b.g-obj_a.g)>_speed) {
obj_a.g += speed_g;
} else {
obj_a.g = obj_b.g;
g_over = true;
}
if (Math.abs(obj_b.b-obj_a.b)>_speed) {
obj_a.b += speed_b;
} else {
obj_a.b = obj_b.b;
b_over = true;
}
var tra:Object = {ra:0, rb:obj_a.r, ga:0, gb:obj_a.g, ba:0, bb:obj_a.b, aa:100, ab:0};
return tra;
}
}



//--------使用方法-------

var color:ColorMove = new ColorMove(mc, 1, 0xff0000, 0x0000ff);
//参数分别是元件,变化速度,起始颜色,终止颜色。


Flash 动画
0

评论Comments

日志分类
首页[38]
flash学习[35]
图片收藏[1]
Apollo_Flex[2]