2011-08-30 6 views
0

마우스 이벤트에서 0으로 설정된 변수를 1로 변경하려고합니다. 3 개의 무비 클립 'maskedbgmc'가 있으며 클릭하면 해당 변수가 변경됩니다. 그러나 내가 볼 수있는 한 변수를 변경하지는 않습니다. 내가 그리워? 시간 :마우스 이벤트의 변수 변경

var checkCard1:Number = 0; 

maskedbg_mc.addEventListener(MouseEvent.MOUSE_DOWN, cardChecked1); 
function cardChecked1 (event:MouseEvent):void { 
    checkCard1 = 1; 
} 

var checkCard2:Number = 0; 

maskedbg_mc2.addEventListener(MouseEvent.MOUSE_DOWN, cardChecked2); 
function cardChecked2 (event:MouseEvent):void { 
    checkCard2 = 1; 
} 

var checkCard3:Number = 0; 

maskedbg_mc3.addEventListener(MouseEvent.MOUSE_DOWN, cardChecked3); 
function cardChecked3 (event:MouseEvent):void { 
    checkCard3 = 1; 
} 

if(checkCard1 == 1) { 
    trace('Nice!'); 
} 
else if(checkCard2 == 1) { 
    trace('Better!'); 
} 
else if(checkCard3 == 1) { 
    trace('King!'); 
} 

답변

1

이벤트는 비동기 적으로 발생합니다. 즉, if 문은이 코드가 해석되는 순간에 실행되지만 변수는 마우스 이벤트가 발생할 때만 수정됩니다. 이벤트 처리기 함수 내에서 변수 값을 추적하면 마우스 버튼을 눌렀을 때 변수가 실제로 변경된다는 것을 알 수 있습니다.

아마 네가 뭘 원하는 추가 귀하 그렇다면 같은 함수로 문 :

function checkCards() : void { 
    if(checkCard1 == 1) { 
     trace('Nice!'); 
    } 
    else if(checkCard2 == 1) { 
     trace('Better!'); 
    } 
    else if(checkCard3 == 1) { 
     trace('King!'); 
    } 
} 

그런 다음 이벤트 리스너 내에서이 메소드를 호출 할 수 있고, 그 위를 사용하여 카드 변수를 확인합니다 논리. cardChecked3() 메소드 내부에서 사용되는 예제 :

maskedbg_mc3.addEventListener(MouseEvent.MOUSE_DOWN, cardChecked3); 
function cardChecked3 (event:MouseEvent):void { 
    checkCard3 = 1; 
    checkCards(); 
} 

희망이 있습니다.

+0

덕분에 코드를 변경해보십시오! 이것은 확실히 올바른 방향으로 나를 잡아줍니다. :디 – Chris

0

에 대한

감사 이벤트는의 MouseEvent.MOUSE_DOWN해야합니까? 클릭에만 관심이 있다면 MouseEvent.CLICK로 변경하려고합니다.

그냥 생각해보십시오.

0

은 마지막 부분이에 많이

function cardChecked3 (event:MouseEvent):void { 
    checkCard3 = 1; 

    if(checkCard1 == 1) { 
     trace('Nice!'); 
    } 
    else if(checkCard2 == 1) { 
     trace('Better!'); 
    } 
    else if(checkCard3 == 1) { 
     trace('King!'); 
    } 
} 
관련 문제