2010-03-11 5 views
0

다른 장면에서 사용할 수있는 UI 무비 클립을 만들려고합니다. 루트 범위의 변수를 사용하여 상태를 결정합니다. 내가 음소거 일하려고 이상한 갈 때 플래시 As3 음소거 버튼 문제

내가 음소거 버튼이 눌러

그러나, 잘 작동합니다. 때로는 음소거를 해제하기 위해 2 번 클릭하는 경우가 있습니다. 무작위로 보인다. 은 .. 그러나 처음 작동하는 것 같다

어떤 아이디어를 음소거?


기본 타임 라인 :

VAR 음소거 : 부울 = 거짓; var playerName = "프레드";

함수 setMute (용적) { VAR의 sTransform :이 SoundTransform = 새이 SoundTransform (1,0); sTransform.volume = vol; SoundMixer.soundTransform = sTransform; }

기능 toggleMuteBtn (이벤트 : 이벤트) { 경우 (음소거) { // 사운드 설정, 해제 음소거 거짓 = 음소거; setMute (1); ui_mc.muteCross_mc.visible = false; 다른 } { //이에서 음소거를 해제 사운드 진정한 = 음소거; setMute (0); ui_mc.muteCross_mc.visible = true; }}


액션 스크립트 ui_mc :

경우 (영화 클립 (상위) .mute == false)를 { muteCross_mc.visible = 거짓; }

mute_btn.addEventListener (MouseEvent.CLICK, 영화 클립 (상위) .toggleMuteBtn);

답변

0

코드가 타임 라인의 첫 번째 프레임에 있다고 가정합니다.

내가 AS3에서 그 실천에 관한 문제와 깊이로 가지 않을 것이다, 그러나 당신이 문서 클래스를 사용하여 더 나을 수 있습니다. 그렇게하면 코드가 한 번만 초기화됩니다. 장면 사이를 전환 할 때, 다시 초기화하는 중이므로 음소거를 거짓으로 다시 설정해야합니다.

는 이런 일이 있다면 그냥 스크립트에 trace("init")를 추가, 확인하고 당신이 전화를 얼마나 자주 참조하십시오., 당신은 또한 당신이 그것을 변경하기 전에 음소거 변수가 무엇인지 확인하기 위해 toggleMuteBtn 기능에 추적을 추가 할 수 있습니다. 보조 노트에

, 나는 당신이 어떤 문제가 발생하지 않지만 부모 MovieClip(parent)를 타입 캐스팅하는 이유 궁금 해요, 당신은 단지 parent

+0

문서 클래스 하우투를 사용할 수 있습니다로 할 필요가 없다 : http://www.youtube.com/watch?v=V01yZnRANLQ – Daniel