http://www.annjing.cn/article.asp?id=37
核心思路:
DEMO中的位图数据主要有3个:1、背景;2、地面(可被挖坑);3、挖坑用的包含透明圆球的位图(一个矩形位图,中间的圆圈为透明的)
//最最核心的一条语句 _earth.bitmapData.copyPixels(_earth.bitmapData, rect, point, abmd);其中_earth.bitmapData就是刚才提到的位图2,rect和point不解释,
重点是这个abmd,就是刚才提到的位图3,这里我的生成方法是:
/**
* 得到一个球体的对象 * @param pow 随机圆的半径 * @return * */ private function getCircleBMD(pow:int):BitmapData { var bmd:BitmapData = new BitmapData(pow * 2, pow * 2, true, 0xFF000000); var spr:Sprite = new Sprite(); spr.graphics.beginFill(0xFFFFFF, 1); spr.graphics.drawCircle(pow, pow, pow); spr.graphics.endFill(); bmd.draw(spr); bmd.floodFill(bmd.width / 2, bmd.height / 2, 0x00000000); return bmd; }完整的项目代码在这里: