用BitmapData.floodFill做填色游戏

在flash8之前的填色游戏一般是将要填色的物件分成若干个小的MovieClip,然后单独对其填充颜色。
  利用BitmapData.floodFill对位图对象填充颜色的特性来实现区域填色,似乎比较方便,只要将线稿导入到flash中,变成BitmapData就可以填色了。下面是一个实例
import flash.display.BitmapData;
 
var colorNumber:Number=15; //色块数量
var nowColor:Number; //记录当前颜色
var showNowColor:Color=new Color(this.attachMovie("block","showNowColorMc",100,{_x:460,_y:330,_width:50,_height:50})); //生成一个色块显示当前颜色
 
for(var i:Number=0;i this.attachMovie("block","block"+i,i+10,{_x:(i*30+10),_y:350});
 var tmpMc:MovieClip=eval("block"+i);
 var tmpColorMc:Color=new Color(tmpMc);
 var tmpColor:Number=random(0xffffff); //随机颜色
 tmpMc.thisColor=tmpColor;
 tmpColorMc.setRGB(tmpColor);
 showNowColor.setRGB(tmpColor);
 nowColor=tmpColor;
 tmpMc.onRelease=function(){
  nowColor=this.thisColor;
  showNowColor.setRGB(nowColor);
 }
}
 
var myBitmapData:BitmapData = BitmapData.loadBitmap("fillpic"); //创建一个位图对象
var mc:MovieClip = this.createEmptyMovieClip("mc", 1);
mc.attachBitmap(myBitmapData,2); //载入位图对象
 
mc.onRelease=function(){ //点击设置颜色
 myBitmapData.floodFill(this._xmouse,this._ymouse, nowColor); //为当前位置(同一颜色的连续区域,这里是白色)填充颜色
 //floodFill 在图像上执行倾倒填充操作,从 (x, y) 坐标开始,填充一种特定的颜色。
}
把该实例扩展下,可以做成下面的效果
 
[img]/uploads/allimg/080329/1036280.jpg[/img]
本文转自:http://www.5uflash.com/flashjiaocheng/Flashyingyongkaifa/1104.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值