万卷书   首页 > 电脑书籍 > Flash > Flash 5 Action 颜色变换
 

颜色变换(2)

  预先应该建立一个隐形的button ,画一个矩形,用于鼠标事件的判断。看见图2左下角的3个方框了吗? 这3个是input text,分别添上变量名称 color_Red_input,color_Green_input,color_Blue_input这个目的是用于下面的显示颜色的数值,在 orange | red | green | blue| 的上面,分别放上我们的那个隐形button,用于鼠标的点击判断。在本mc最上面的那个帧里面设置action脚本,脚本如下 :

myColor_Orig_A = new Color(bg_color_orig_A);

//建立新的color对象 new color(bg_color_orig_a)

myColor_Orig_Transform_A = new Object();

//建立新的物体对象

myColor_Orig_B = new Color(bg_color_orig_B);

//建立新的color对象 new color(bg_color_orig_b)

myColor_Orig_Transform_B = new Object();

//建立新的物体对象

myColor_Orig_C = new Color(bg_color_orig_C);

//建立新的color对象 new color(bg_color_orig_c)

myColor_Orig_Transform_C = new Object();

//建立新的物体对象

myColor_Orig_A.setRGB(128 << 16 | 159 << 8 | 178);

//设定新的color对象A的颜色,利用的是color对象的setRGB 方法,因为大家都知道,光的三原色是由R(ed) ,G(reen) B(lue)组合而来的,所以设定不同的RGB数值,,就可以显示出不同的颜色

myColor_Orig_B.setRGB(184 << 16 | 210 << 8 | 221);

//同理 设定新的color对象B的颜色

myColor_Orig_C.setRGB(209 << 16 | 227 << 8 | 237);

//同理 设定新的color对象C的颜色

color_Red_input = 255;

//设定动态文本框color_red_input的显示数值为255

color_Green_input = 255;

//设定动态文本框color_green_input的显示数值为255

color_Blue_input = 255;

//设定动态文本框color_blue_input的显示数值为255

-------------------下面是一些函数的定义,留待调用

function swapBgColor () {

myColor_Orig_A.setRGB(color_Red_input << 16 | color_Green_input << 8 | color_Blue_input);

//定RGB 里面的“<<” 是位运算符“|” 是 或 运算符

myColor_Orig_B.setRGB(color_Red_input << 16 | color_Green_input << 8 | color_Blue_input);

//用是可以让用户自己输入16位或者8位颜色数值

myColor_Orig_C.setRGB(color_Red_input << 16 | color_Green_input << 8 | color_Blue_input);

}

function TransformA () {

myColor_New_A = new Color(bg_color_new_A);

//新的color对象

myColor_New_Transform_A = new Object();

//物体对象

myColor_New_Transform_A = (color_Red_input << 16 | color_Green_input << 8 | color_Blue_input);

//颜色

myColor_New_A.setRGB(myColor_New_Transform_A);

//颜色

}

function TransformB () {

myColor_New_B = new Color(bg_color_new_B);

myColor_New_Transform_B = new Object();

myColor_New_Transform_B = (color_Red_input << 16 | color_Green_input << 8 | color_Blue_input);

myColor_New_B.setRGB(myColor_New_Transform_B);

}

function TransformC () {

myColor_New_C = new Color(bg_color_new_C);

myColor_New_Transform_C = new Object();

myColor_New_Transform_C = (color_Red_input << 16 | color_Green_input << 8 | color_Blue_input);

myColor_New_C.setRGB(myColor_New_Transform_C); //都一样,不废话了,同上!!!

}

function ChangeOrange () {

//changeorange() 函数

swapBgColor();

//swapbgcolor()函数

duplicateMovieClip (bg_color_orig_A, "bg_color_new_A", 1);

//mc bg_color_orig_A ,新名字 bg_color_new_A, 深度1

color_Red_input = 255;

//文本框的显示数值

color_Green_input = 166;

//文本框的显示数值

color_Blue_input = 46;

//文本框的显示数值

TransformA();

// transformA() 函数

duplicateMovieClip (bg_color_orig_B, "bg_color_new_B", 2);

//mc bg_color_orig_B ,新名字 bg_color_new_B, 深度2

color_Red_input = 255;

//文本框的显示数值

color_Green_input = 196;

//文本框的显示数值

color_Blue_input = 138;

//文本框的显示数值

TransformB();

//transformB()函数

duplicateMovieClip (bg_color_orig_C, "bg_color_new_C", 3);

//mc bg_color_orig_C ,新名字 bg_color_new_C 深度3

color_Red_input = 255;

//文本框的显示数值

color_Green_input = 245;

//文本框的显示数值

color_Blue_input = 230;

//文本框的显示数值

TransformC();

//transformC()函数

}

function ChangeGreen () {

//changegree() 函数

swapBgColor();

//swapbgcolor()函数

duplicateMovieClip (bg_color_orig_A, "bg_color_new_A", 1);

//mc bg_color_orig_A ,新名字 bg_color_new_A 深度1

color_Red_input = 0;

//文本框的显示数值

color_Green_input = 166;

//文本框的显示数值

color_Blue_input = 0;

//文本框的显示数值

TransformA();

//TransformA()函数

duplicateMovieClip (bg_color_orig_B, "bg_color_new_B", 2);

color_Red_input = 0;

color_Green_input = 196;

color_Blue_input = 0;

TransformB();

duplicateMovieClip (bg_color_orig_C, "bg_color_new_C", 3);

color_Red_input = 0;

color_Green_input = 245;

color_Blue_input = 0;

TransformC();

}

function ChangeRed () {

swapBgColor();

duplicateMovieClip (bg_color_orig_A, "bg_color_new_A", 1);

color_Red_input = 255;

color_Green_input = 0;

color_Blue_input = 0;

TransformA();

duplicateMovieClip (bg_color_orig_B, "bg_color_new_B", 2);

color_Red_input = 150;

color_Green_input = 0;

color_Blue_input = 0;

TransformB();

duplicateMovieClip (bg_color_orig_C, "bg_color_new_C", 3);

color_Red_input = 220;

color_Green_input = 0;

color_Blue_input = 0;

TransformC();

}

function ChangeBlue () {

swapBgColor();

duplicateMovieClip (bg_color_orig_A, "bg_color_new_A", 1);

color_Red_input = 128;

color_Green_input = 159;

color_Blue_input = 178;

TransformA();

duplicateMovieClip (bg_color_orig_B, "bg_color_new_B", 2);

color_Red_input = 184;

color_Green_input = 210;

color_Blue_input = 221;

TransformB();

duplicateMovieClip (bg_color_orig_C, "bg_color_new_C", 3);

color_Red_input = 209;

color_Green_input = 227;

color_Blue_input = 237;

TransformC();

}

一直到这里都是不停的复制mc 调用函数,设定, 原理都一样,我不废话了,自己慢慢看吧。

这样,一个可以改变颜色的flash就做好了,scene当中很简单,就是symbol当中定义的比较麻烦,看多了真的头晕,呵呵。。。。

好了吗?这次就说到这里,记得对照源文件哦。

上一页