flash as教程:填色游戏的制造

更新时间:15-11-02 23:21 热度:284
 

先试试效果:

在本次课程中我们将学习运用 color 类来制造一个填色游戏,并经过本实际的例子温习 for…in 及 sharedobject 的应用。
思考的线索:
1.运用脚本开创一个调色盘,鼠标点击色块后行取色;
2.画出造为补充的影片儿剪接并把每一部都存为影片儿剪接。例如:补充对象是独自一个人物,那末要把他的头发,眼球,脸等局部都保留成影片儿剪接;
3.最终把各局部影片儿再一统保留到一个影片儿剪接(mc)中;
4.为了保留和读取mc中各影片儿中的颜色,所以要参加两个按键 save_变态n 和 load_变态n 。
步骤1:
画出造为补充的影片儿剪接并把每一部都存为影片儿剪接;
最终把各局部影片儿一统保留到一个影片儿剪接中,实际的例子名mc;
画出两个按键实际的例子身份地位别为 save_变态n 和 load_变态n 。

步骤2:
参加as代码:
//=====画出一个正方作为色块以备调配使用=====
_root.createemptymovieclip("box",-1);
varbox_size:number=12;
varthecol=0×0;
//用于储存所取的色彩值
with(box){
beginfill(thecol);
moveto(0,0);
lineto(box_size,0);
lineto(box_size,box_size);
lineto(0,box_size);
lineto(0,0);
endfill();
}
box._visible=false;
//============================================
//*************下不熟悉成一个调色盘*************
varpanex:number=3;
varpaney:number=3;
varcolumn:number=18;
//起点x坐标为3,起点y坐标为3,总行数为18
vari=0;
for(varr=0;r<=0xff;r =0×33){
for(varg=0;g<=0xff;g =0×33){
for(varb=0;b<=0xff;b =0×33){
varp:movieclip=box.duplicatemovieclip("box" i,i);
newcolor(p).setrgb(r*256*256 g*256 b);
//newcolor(p).setrgb(r<<16g<<8b);
//rgb改换公式,以上两种都可以运用
p._x=panex math.floor(i/column)*(box_size 1);
p._y=paney i百分之百column*(box_size 1);
//设置每个色块的坐标行坐标:[i/column],列坐标:i百分之百column
p.onrelease=function(){
thecol=newcolor(this).getrgb();
newcolor(curser.bg).setrgb(thecol);
//点击到该色块后行取色于保留到thecol变量中
};
i ;
}
}
}
//******************************************
//=====判断点击到图案上往后对哪一个影片儿剪接填色=====
mc.onrelease=function(){
varflag:boolean=true;
//增加一个flag为了防止一次对多个影片儿施行填色
for(varkinmc){
if(mc[k].hittest(_xmouse,_ymouse,true)&&flag){
newcolor(mc[k]).setrgb(thecol);
flag=false;
}
}
};
//============================================
//*************对mc中全部补充色的读取和保留*************
save_变态n.onrelease=function(){
varso:sharedobject=sharedobject.getlocal("color_save");
for(varkinmc){
so.data[k]=newcolor(mc[k]).getrgb();
}
};
load_变态n.onrelease=function(){
varso:sharedobject=sharedobject.getlocal("color_save");
for(varkinmc){
newcolor(mc[k]).setrgb(so.data[k]);
}
};
//******************************************flash充电:例举 color 类中等用办法简介
请注意:我们在戏台中所画出出的影片儿剪接纵然给他是补充了纯色影片儿,运用getrgb()也不会获得其rgb值。我们只有对其运用过setcolor()后,能力用getrgb()取得该影片儿的颜色值。
例1:为影片儿剪接 mc 开创一个名为 m_col 的 color 对象,并将其rgb值设置为橙色:
var my_color:color = new color(my_mc);
my_color.setrgb(0xff9933);
例2:取得影片儿剪接 mc 的rgb值并以16进制显露出来:

var m_col:color = new color(mc);
m_col.setrgb(0xff9933);
var myvalue:string= m_col.getrgb().tostring(16);