2013-08-13 3 views
0

나는 AS3 수업에 익숙하지 않아서 나를 더 잘 이해할 수있는 간단한 "프로젝트"를 만들었고 즉시 문제가 발생했다. 내 플래시 파일에서AS3 : 버튼 신고 방법은 무엇입니까?

, 나는 무대에 넣어, 버튼을 만들어 내, 외부 클래스 파일에이 코드가 그것을 HitButtonA

다음

의 인스턴스를 주었다

package 
{ 
    import flash.display.MovieClip; 
    import flash.events.MouseEvent; 

    public class External extends MovieClip 
    { 

    private var counter:Number; 

     public function External() 
     { 
     setupListeners(); 
     counter=0; 
     } 


    public function setupListeners() 
    { 
     HitButtonA.addEventListener(MouseEvent.CLICK, hitButtA); 
    } 

    public function hitButtA() 
    { 
     display.text=String(++counter); 
    } 



    } 
} 

하지만, 플래시 파일을 실행하면이 오류가 발생합니다.

Line 20 1120: Access of undefined property HitButtonA.

무엇이 잘못 되었나요?

+0

어디에서 HitButtonA를 선언하고 있습니까? eventListener를 초기화하지 않고 클래스 정의에 추가 할 수는 없습니다. 'var hitbuttunA : HitButtonA = new HitButtonA();' –

+0

플래시 (http://picthost.net/v.php?id=54e618b60e16bc9e47fa438693e12dba)로 선언했는데 두 곳에서 선언해야합니까 ?? – Ryan

+1

오브젝트가 아니라 클래스를 선언했습니다. .addEventListener와 같은 것을 사용하면 Tobias Kun이 말한 것처럼 HitButtinA 클래스의 새 Object를 만들어야합니다. HitButtonA에 "액션 스크립트 내보내기"버튼이 있는지 확인하십시오. – KumoKairo

답변

1

아마도이 코드가 유용 할 수 있습니다. 클래스의 속성을 사용하는 경우 속성으로 선언해야합니다.

예를 들어, 클래스에 넣고 (그리고 function hitButtA 교체) :

public function get hitButtA():void{ 
    return null; 
} 
public function set hitButtA(value:Object):void{ 
    display.text=String(++counter); 
} 

참고 :이 문제를 해결하기 위해 예입니다,이 게터/세터 함수에 대한 올바른 사용하지 않습니다.

objectFromMyClass.hitButtA = value; 

을하거나 게터 사용 : 따라서, 당신은 예를 들어, 클래스 세트, 속성을 세터를 사용한다

var value:Object = objectFromMyClass.hitButtA; 

확인 더 설명 link이 링크를.

당신은 당신이 공용 변수 또는 게터/세터 기능를 선언해야합니다, 당신은 클래스의 특성 hitButtA을 선언해야하기 때문에 오류가 있으므로.

+0

임에도 불구하고 정말로 새로운 점은 위에 쓴 것을 사용하는 방법을 잘 모르겠다 ... 내 수업을보고 어떻게 그리고 어디에서 사용할 수 있는지 알려주시겠습니까? – Ryan

+0

@ Ryan 나는 더 많은 설명과 함께 나의 대답을 편집했고, 그것이 유용한지를 확인하고 말해 준다. –