2014-12-16 2 views
1

안녕하세요 저는 이전에 AS3에서 Captivate 5.5에서 제대로 가져오고 실행 한 몇 가지 플래시 애니메이션을 만들었습니다. 그러나, 그들 중 하나, 간단한 드래그 드롭 게임이 작동하지 않습니다. 그것은 수입하고 매혹적인 모든 것이 하나의 (짜증나는) 문제와 함께 작동하는 것으로 보입니다. 즉, 개체가 적절한 놓기 영역으로 떨어지지 않습니다. 애니메이션은 내 브라우저에서 SWF처럼 잘 작동하지만 어떤 아이디어를 사로 잡을 때 작동하지 않습니다. 코드 개요는 다음과 같습니다. 나는 머리카락을 찢어 내고 있는데, 어떤 충고도 크게 감사 할 것입니다.AS3 Flash 애니메이션이 captivate에서 완전히 작동하지 않음 5.5

코드 :

right_mc.visible=false; 
wrong_mc.visible=false; 
var orig1X:Number=item1_mc.x; 
var orig1Y:Number=item1_mc.y; 
item1_mc.addEventListener(MouseEvent.MOUSE_DOWN, dragTheObject); 
item1_mc.addEventListener(MouseEvent.MOUSE_UP, item1Release); 
item1_mc.buttonMode=true;  

function dragTheObject(event:MouseEvent):void { 
    var item:MovieClip=MovieClip(event.target); 
    item.startDrag(); 
    var topPos:uint=this.numChildren-1; 
    this.setChildIndex(item, topPos);  
} 

function item1Release(event:MouseEvent):void { 
    var item:MovieClip=MovieClip(event.target); 
    item.stopDrag();  
    if (dropZone1_mc.hitTestPoint(item.x,item.y)) { 
     item.x=dropZone1_mc.x; 
     item.y=dropZone1_mc.y; 
    } else { 
     item.x=orig1X; 
     item.y=orig1Y; 
    } 
};  

done_btn.addEventListener(MouseEvent.CLICK,checkAnswers); 
function checkAnswers(event:MouseEvent):void { 
    if (dropZone1_mc.hitTestPoint(item1_mc.x,item1_mc.y) && 
    dropZone16_mc.hitTestPoint(item16_mc.x,item16_mc.y)) { 
     wrong_mc.visible = false; 
     right_mc.visible = true; 
    } else { 
     wrong_mc.visible = true; 
     right_mc.visible = false; 
    } 
} 

reset_btn.addEventListener(MouseEvent.CLICK,reset); 
function reset(event:MouseEvent):void { 
    item1_mc.x=orig1X; 
    item1_mc.y=orig1Y;  

    right_mc.visible=false; 
    wrong_mc.visible=false; 
} 

답변

1

hitTestPoint 때문에하는 세계 유일의 좌표와 함께 작동합니다. 브라우저에서 SWF를 열면 로컬 좌표와 전역 좌표가 동일하므로 그 점이 효과적입니다. 그러나 Captivate에로드하면 서로 다릅니다.

이 시도 : 화려한 blvz있어

import flash.geom.Point; 

// ... 

var localPoint:Point = new Point(item.x, item.y); 
var globalPoint:Point = item.parent.localToGlobal(localPoint); 
if (dropZone1_mc.hitTestPoint(globalPoint.x, globalPoint.y)) { 
    item.x = dropZone1_mc.x; 
    item.y = dropZone1_mc.y; 
} 

// ... 
+0

합니다. 치료를했다. 간단한 수정, 그리고 절대로 깨닫지 못했을 것입니다. 도와 주셔서 감사합니다 –