BitmapData.hitTest 이용 예제(AS 3.0)
function onMovie(e:Event):void {
var md:MovieClip=MovieClip(ldr.content);
var pt1:Point=new Point(1,1);
var pt2:Point;
var span:int=1;//다음검색 증가분
trace("span : " + span + " /md.width : " + md.width + " /md.height : " + md.height);
trace("movieClip dot loading");
var count:int=0;
var mcFrame:Number=md.totalFrames;
for (var f:int=0; f < mcFrame; ++f) {
count=0;
var tempArray:Array=new Array;
md.gotoAndStop(f + 1);
var bitmap:BitmapData=new BitmapData(md.width,md.height);
bitmap.draw(md);
//var newBM:Bitmap = new Bitmap(bitmap);
for (var i:int=1; i < md.width; i=i + span) {
for (var j:int=1; j < md.height; j=j + span) {
pt2=new Point(i,j);
if (! bitmap.hitTest(pt1,0xff,pt2)) {
tempArray.push({px:i,py:j});
count++;
}
}
}
pos.push(tempArray);
posLength[f]=count;
trace("pos[" + f + "].length : " + posLength[f] + " pos[" + f + "]type : " + typeof pos[f]);
}
trace("pos.length : " + pos.length);
trace("dot loaded");
framelength=pos.length;
ldr.unload();
ldr=null;
bitmap=null;
/////
for (i=0; i<500; ++i) {
var temp:Array = new Array();
for (j=0; j<500; ++j) {
temp.push(0);
}
shift.push(temp);
}
var vl:int=pos[frame][0].px;
top.push(0);
for (i=0; i<posLength[frame]; i++) {
if (pos[frame][i].px!=vl) {
vl = pos[frame][i].px;
top.push(i);
}
}
Start();
}
function Start():void {
//그리기시작 ////////////////////////////
frameIv=setInterval(movieplay,framerate);
this.addEventListener(Event.ENTER_FRAME,vary);
}

