티스토리 뷰
■ 플래시 ■/Adobe ActionScript3.0
hitTestObject - indexOf와 subString이용한 도형맞추기 드래그
serpiko 2013. 10. 16. 02:33
DisplayObject끼리의 충돌을 검사하여 교차하면 true, 그렇지 않으면 false를 반환하는 메서드이다.
이것을 가지고 기초적인 책의 샘플을 응용하여 도형 맞추기를 만들어봄.
import flash.display.MovieClip;
import flash.events.MouseEvent;
var posX:Number;
var posY:Number;
var myInstance:Array = new Array(poly_mc,rect_mc,star_mc,cir_mc);
for(var i:int = 0; i<myInstance.length; ++i){
var mc:MovieClip = myInstance[i] as MovieClip;
mc.buttonMode = true;
mc.addEventListener(MouseEvent.MOUSE_DOWN,dragStart);
mc.addEventListener(MouseEvent.MOUSE_UP,dragStop);
}
function dragStart(e:MouseEvent):void {
posX = e.currentTarget.x;
posY = e.currentTarget.y;
e.currentTarget.startDrag();
e.currentTarget.alpha = 0.3;
}
function dragStop(e:MouseEvent):void{
var mc:MovieClip = e.currentTarget as MovieClip;
mc.alpha=1;
mc.stopDrag();
overLap(mc);
}
function overLap($mc:MovieClip):void{
var mc:MovieClip = $mc;
var findIndex:int = mc.name.indexOf("_");// _까지인 "cir_" = 3을 반환
var target:MovieClip = this[mc.name.substring(0, findIndex) + "_area"];
//var target:MovieClip = this[mc.name.slice(0, findIndex) + "_area"];
//var target:MovieClip = this[mc.name.substr(0, findIndex) + "_area"];
if(mc.hitTestObject(target)){
mc.x = target.x;
mc.y = target.y;
mc.removeEventListener(MouseEvent.MOUSE_DOWN,dragStart);
mc.removeEventListener(MouseEvent.MOUSE_UP,dragStop);
mc.mouseEnabled = false;
}else{
mc.x = posX;
mc.y = posY;
}
}
설명준비중
hitTestObject_-_indexOf와_substring을_이용한_드래그)
'■ 플래시 ■ > Adobe ActionScript3.0' 카테고리의 다른 글
| cos과 rotationY의 차이점 (0) | 2013.10.16 |
|---|---|
| FlashPlyer 버전의 중요성 (0) | 2013.10.16 |
| 도형그리기 - Point.polar() (0) | 2013.10.16 |
| swf를 브라우저 중앙정렬 - css로 속성제어 (0) | 2013.10.16 |
| interface - 인터페이스 2 (0) | 2013.10.16 |
댓글