颜色变换(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当中定义的比较麻烦,看多了真的头晕,呵呵。。。。
好了吗?这次就说到这里,记得对照源文件哦。 |