2010-03-13 10 views
0

이것은 AS3에서 문서 클래스를 사용하려고 애 쓰고 있으며 고생하고 있습니다. 2 단계 깊이 무비 클립에 이벤트 리스너를 추가하려고합니다. 그러나 다음 오류가 발생합니다.Flash AS3의 정의되지 않은 속성 문서 클래스의 MouseEvent

ERROR: Access of undefined property MouseEvent 

package 
{ 
import flash.display.MovieClip; 
import flash.media.Sound; 
     import flash.media.SoundChannel; 

public class game extends MovieClip 
{ 
    public var snd_state = true; 

    public function game() 
    { 
    ui_setup(); 
    } 

    public function ui_setup() 
    { 
    ui_mc.toggleMute_mc.addEventListener(MouseEvent.CLICK, snd_toggle); 
    } 

    public function snd_toggle(MouseEvent) 
    { 
    // 0 = No Sound, 1 = Full Sound 
    trace("Toggle"); 
    } 
} 
} 

답변

1

, 당신이 필요합니다 import flash.events.MouseEvent

함수 매개 변수는 이름이 필요 가져 오기. 컴파일러는 MouseEvent 클래스를 참조했지만 코드에 포함시키지 않았다는 것을 알려줍니다. 나는 당신을 위해 조금 그것을 청소했습니다

package 
{ 
import flash.display.MovieClip; 
import flash.events.MouseEvent; // <-- import MouseEvent Class 
import flash.media.Sound; 
import flash.media.SoundChannel; 

public class game extends MovieClip 
{ 
    public var snd_state:Boolean = true; // -- snd_state is type Boolean 

    public function game() 
    { 
    ui_setup(); 
    } 

    public function ui_setup():void 
    { 
    ui_mc.toggleMute_mc.addEventListener(MouseEvent.CLICK, snd_toggle); 
    } 

    private function snd_toggle(event:MouseEvent):void 
    { 
    // 0 = No Sound, 1 = Full Sound 
    trace("Toggle"); 
    } 
} 
} 

당신은 내가 당신의 방법의 끝에 :void를 추가 있습니다 것입니다. 이것은 반환 할 변수의 유형을 나타냅니다. 예를 들어, 메서드가 문자열을 반환하면 :String이됩니다. 또한 snd_toggle 처리기에 매개 변수를 추가했습니다. 이 매개 변수는 "이벤트"라고하며 클래스 MouseEvent (event:MouseEvent)의 인스턴스입니다.

+0

감사합니다 변경 사항은 대우를 받았고 나는 어디서 잘못되었는지 이해합니다. 나는이 개념이 완전히 틀렸다고 생각합니다. 당신이 그걸 설명하고 싶다면 궁금합니다. 나는 위의 클래스가 장면 1의 첫 번째 프레임에서 인스턴스화됩니다. 또한 장면 전환시 이벤트 리스너 등이 여전히 실행 중이라고 가정합니다. 장면 1 : 사운드를 음소거하기위한 버튼이있는 ui_mc라는 MC가 있습니다. 장면 2 : 동일한 버튼이있는 동일한 무비 클립이 있습니다. 이제 eventListener는 첫 번째 장면에서이를 선택하지만 두 번째 장면에서는 그렇지 않습니다. – Lee

+0

다른 무비에서 UI 오버레이처럼 작동하는 동일한 무비 클립을 사용하려고합니다. 각 UI의 이름이 같으면 scene에 관계없이 eventListeners를 픽업하지 않습니까? 분명히 내가 어딘가에 잘못 .. – Lee

+0

클래스를 FLA의 문서 클래스로 설정 했습니까? – typeoneerror

0

당신은 이벤트를 가져와야합니다 : 당신이 클래스를 사용하려고하는 경우 public function snd_toggle(bblabla:MouseEvent) { ...

관련 문제