2012-12-20 5 views
1

프레임에 3 개의 개별 무비 클립이 있습니다. 아래에 표시된 간단한 터치 및 드래그 이벤트를 사용하여 각 클립을 무대 주위로 이동할 수 있습니다.이 이벤트는 관련성이 있습니다. 세 번째 클립을 네 번째 클립으로 드래그하고 세 번째 클립에 세 개의 클립이 모두 포함되어 있으면 현재 프레임을 변경하는 트리거 된 이벤트가 필요합니다. AS3에서이 작업을 수행하는 가장 쉬운 방법은 무엇입니까? 내가 완전한 초보자이기 때문에 어떤 예도 좋을 것이다.플래시 AS3 다중 터치 이벤트 처리기

유지 : 당신이 솔루션을 구현 어디 드래그 앤 드롭 기능 싶어 향후 감사

Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT; 

    Gem1_MC.addEventListener(TouchEvent.TOUCH_BEGIN, fl_TouchBeginHandler_2); 
    Gem1_MC.addEventListener(TouchEvent.TOUCH_END, fl_TouchEndHandler_2); 

    var fl_DragBounds_2:Rectangle = new Rectangle(0, 0, stage.stageWidth, stage.stageHeight); 

    function fl_TouchBeginHandler_2(event:TouchEvent):void 

{ 



event.target.startTouchDrag(event.touchPointID, false, fl_DragBounds_2); 
    } 

    function fl_TouchEndHandler_2(event:TouchEvent):void 
    { 
     event.target.stopTouchDrag(event.touchPointID); 
    } 

답변

1

당신이있어 어떤 작업을 할 수 있지만 클래스로 추상화되어, 여기에 기본 솔루션입니다 세 MovieClips 고려 때의 트랙이 그것의 저항을 마무리 객체의 이벤트에서 네 번째 클립

var contained:Array = new Array(false, false, false); 

"포함"이 mc1에 포함 된 것 있는지 확인하십시오. 그들은 모두 사실 인 경우 이러한 검사의 끝에서 찾을 : 보조 노트로

function fl_TouchEndHandler_2(event:TouchEvent):void { 
    // Drag & drop stuff... 
    contained[2] = Gem2_MC.hitTestObject(Gem4_MC)); // where Gem4_MC is your 4th movie clip. 

    if (contained.indexOf(false) == -1) { // This returns -1 if it can't find false 
     gotoAndStop(frame_number_you_want); 
    } 
} 

, hitTestObject()는 "충돌"dectect하는 간단한 "경계 상자"를 사용합니다. 즉, 실제로 두 개의 동영상 클립이 보이지 않더라도 히트를 사실로 등록 할 수 있습니다. 플래시에서 픽셀 완벽한 충돌 감지는 가능하지만 더 복잡하고 자체 게시물의 가치가 있습니다. A simple example of pixel perfect collision in AS3 can be found here.

+0

답장을 보내 주셔서 감사합니다.하지만 이미 완전한 멀티 터치 드래그 앤 드롭 기능이 있습니다. – user1051467

+0

@ user1051467 질문에 더 잘 맞게 재검토되었습니다. – Foggzie

+0

대단히 고마워요. 그러나 성공적으로 구현하는 데 문제가 있습니다. 정의되지 않은 속성 i의 액세스와 정의되지 않은 속성 Gem4의 액세스 오류가 나타납니다. 어떤 제안? – user1051467