`
wangangie16
  • 浏览: 43836 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

用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) 坐标开始,填充一种特定的颜色。
}
把该实例扩展下,可以做成下面的效果
 

本文转自:http://www.5uflash.com/flashjiaocheng/Flashyingyongkaifa/1104.html
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics