Flash8技巧:用BitmapData.floodFill做填色游戏

王朝other·作者佚名  2008-05-19
宽屏版  字体: |||超大  

在flash8之前的填色游戏一般是将要填色的物件分成若干个小的MovieClip,然后单独对其填充颜色。

利用BitmapData.floodFill对位图对象填充颜色的特性来实现区域填色,似乎比较方便,只要将线稿导入到flash中,变成BitmapData就可以填色了。下面是一个实例

importflash.display.BitmapData;

varcolorNumber:Number=15;//色块数量

varnowColor:Number;//记录当前颜色

varshowNowColor:Color=newColor(this.attachMovie("block","showNowColorMc",100,{_x:460,_y:330,_width:50,_height:50}));//生成一个色块显示当前颜色

for(vari:Number=0;i

this.attachMovie("block","block"+i,i+10,{_x:(i*30+10),_y:350});

vartmpMc:MovieClip=eval("block"+i);

vartmpColorMc:Color=newColor(tmpMc);

vartmpColor:Number=random(0xffffff);//随机颜色

tmpMc.thisColor=tmpColor;

tmpColorMc.setRGB(tmpColor);

showNowColor.setRGB(tmpColor);

nowColor=tmpColor;

tmpMc.onRelease=function(){

nowColor=this.thisColor;

showNowColor.setRGB(nowColor);

}

}

varmyBitmapData:BitmapData=BitmapData.loadBitmap("fillpic");//创建一个位图对象

varmc:MovieClip=this.createEmptyMovieClip("mc",1);

mc.attachBitmap(myBitmapData,2);//载入位图对象

mc.onRelease=function(){//点击设置颜色

myBitmapData.floodFill(this._xmouse,this._ymouse,nowColor);//为当前位置(同一颜色的连续区域,这里是白色)填充颜色

//floodFill在图像上执行倾倒填充操作,从(x,y)坐标开始,填充一种特定的颜色。

}

把该实例扩展下,可以做成下面的效果

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有