2012-05-24 2 views
0

저는 아이들이 소리를 듣고 3 개의 이미지 중에서 올바른 이미지를 선택해야하는 교육용 게임을 가지고 있습니다.AS3 CS5 SOUND_COMPLETE 이후에 스테이지를 새로 고침하려면 어떻게해야합니까?

소리를 다시 들으려면 스피커 단추를 누를 수 있습니다. 3 개의 이미지는 스테이지에 동적으로 추가 된 무비 클립 (card1, card2 및 card3)이며 buttonMode = true입니다.

사운드를 다시 듣기 위해 스피커를 누르거나 잘못된 이미지를 누르면 피드백을받을 때마다 사운드 지속 시간 동안 카드에서 mouse_events가 제거됩니다. buttonMode = false로 설정하여 아이들은 사운드가 재생되는 동안 딸깍 소리가 나지 않을 것을 알 수 있습니다.

SOUND_COMPLETE에서 eventListeners를 다시 추가합니다. 이제 buttonMode = true가 다시 나타납니다.

event.updateAfterEvent()와 같은 화면을 새로 고침하고 싶습니다. 카드 중 하나에 놓았 으면 커서가 손으로 바뀝니다. 하지만 event.updateAfterEvent()는 SOUND_COMPLETE에 첨부 할 수 없으며 MOUSE 또는 GESTURE와 같은 상호 작용 이벤트 이후에만 사용할 수 있습니다.

tldr; SOUND_COMPLETE 이후 커서가 손으로 다시 바뀌도록 스테이지를 새로 고칠 수 있습니까?

Here's 일부 코드 :

이 addLst 기능에서
function speakerClick(event:MouseEvent):void 
    { 
     remLst(); 
     SoundMixer.stopAll(); 
     cardCnl = gameSnd.play(); 
     cardCnl.addEventListener(Event.SOUND_COMPLETE, sndComplete); 
    } 
    function sndComplete(event:Event):void 
    { 
     cardCnl.removeEventListener(Event.SOUND_COMPLETE, sndComplete); 
     addLst();   
    } 

    function addLst():void 
    { 
     for (var i:int = 1; i < 4; i++) 
     { 
      var card:Card = getChildByName("card" + i) as Card; 
      card.addEventListener(MouseEvent.CLICK, fnClick); 
      card.addEventListener(MouseEvent.MOUSE_OVER, fnOver); 
      card.addEventListener(MouseEvent.MOUSE_OUT, fnOut); 
      card.buttonMode = true; 
     } 
    } 
+0

개체를 완전히 제거하고 다시 스테이지에 추가하십시오. 이것은 귀하의 탐침을 해결할 수 있지만 최선은 아니지만 도움이 될 수 있습니다. – ymutlu

+0

아래의 답변이 효과가 없다면 나는 당신의 제안을 따라 갔을 것입니다. 내 게임은 복잡하지 않으며 완벽하게 코드를 작성하는 것보다 작업하는 것이 더 중요합니다. 그러나 TheSHEEP는 좋은 대답을 얻었으므로 다음과 같이 좋은 결과를 얻었을 것입니다. – silvith

답변

0

, 4 개 개의 카드를 순환 할 때, 현재 마우스 위치를 확인하고의 경계 내에 있을지 어떨지를 확인할 수 있습니다 카드 중 하나.

은 다음과 같이 일할 수 :

if (mouseX > card.x && mouseX < (card.x + card.width) 
    mouseY > card.y && mouseY < (card.y + card.height)) 
{ 
    Mouse.cursor = MouseCursor.BUTTON; 
} 

buttonMode가 마우스 개체를 떠날 때 화살표로 다시 변경하면 그래도 난 100 % 확실하지 않다. 나는 보통 buttonMode를 사용하지 않는다.

+0

이것은 아름답게 작동합니다 : D 나는 마우스 커서를 사용하지 않았기 때문에 Mouse.cursor를 피하기 시작했습니다. – silvith

+0

네, 어디서나 그것을 제어하지 않으면 그렇게하는 경향이 있습니다. 그러나이 경우에 작동한다면, 모든 더 나은 :) – TheSHEEEP

관련 문제