5D艺术网首页
商城
|
资讯
|
作品
|
博客
|
教程
|
论坛
登录
注册
加为好友
发短消息
来自:北京
性别:秘密
最后登录:2007-07-05
http://ycccc8202.5d.cn/
!@#$%^&*()
首页
|
新闻
|
话题
|
博客
|
相册
|
艺术作品
|
社交关系
|
留言板
|
社交圈
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]