나는 ousiastikaChest라는 영화 클립을 HitTestObject로하는 7 개의 영화 클립이있는 배열을 가지고 있습니다. 잘 작동합니다. 해당 배열의 모든 요소에 hitTestObject가 있는지 확인하여 잘 된 메시지가 표시되는지 확인하고 싶습니다. 내 코드의이 부분이 잘못되었습니다. 누구든지 나를 도울 수 있습니까? 감사합니다
이것은 내 코드입니다
var circles:Array = [ous1,ous2,ous3,ous4,ous5,ous6,ous7];
for each(var circleMC:MovieClip in circles)
{
circleMC.addEventListener(MouseEvent.MOUSE_DOWN, pickUp);
circleMC.addEventListener(MouseEvent.MOUSE_UP, dropIt);
circleMC.startX = circleMC.x;
circleMC.startY = circleMC.y;
}
function pickUp(event:MouseEvent):void
{
event.target.startDrag(true);
event.target.parent.addChild(event.target);
}
function dropIt(event:MouseEvent):void
{
event.target.stopDrag();
if(event.target.hitTestObject(ousiastikaChest)){
event.target.buttonMode = false;
event.target.alpha = 0
event.target.x = ousiastikaChest.x;
event.target.y = ousiastikaChest.y;
ousiastikaChest.gotoAndPlay(2);
}
else
{
event.target.x = event.target.startX;
event.target.y = event.target.startY;
event.target.buttonMode = true;
}
}
//problem with that part of the code
for(var i:int = 0; i<circles.length;i++){
if(circles[i].hitTestObject(ousiastikaChest)){
feedback.text="Well Done";
}
}
모든 서클에 대해 조건 (hitTest)이 참일 때 메시지를 표시하려면 Boolean
다음과 같은 var를 사용할 수 있습니다 .
var show_message:Boolean = true;
for(var i:int = 0; i < circles.length; i++){
// if the condition is false for only one item, so don't show the message
if(!(circles[i].hitTestObject(ousiastikaChest))){
show_message = false;
}
}
if(show_message){
// a trace for test, because sometimes text boxes don't show texts because of embedding fonts problem
trace('Well Done');
feedback.text = 'Well Done';
}
도움이 될 수 있기를 바랍니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다