2013-06-28 2 views
0

저는 as3을 배우고 어도비 온라인 자습서에서 연습 문제를 작성합니다. 나는 아주 간단한 작업을하려고하는데 내 코드가 작동하지 않는 튜토리얼과 정확히 같다고 생각합니다! 그냥 그것을 해결할 수 없습니다 ...클래스의 텍스트 필드를 설정했지만 숫자를 표시 하시겠습니까?

버튼 클래스에서 버튼의 텍스트 필드를 변경하려고합니다.

버튼의 이름은 GameButton이고, 텍스트 필드는 blabel이며 클래식 텍스트 및 동적 텍스트입니다. 다음은 GameButton 클래스의 코드입니다. 아래와 같이 "Click"을 표시하는 대신 레이블을 숫자 1로 변경합니다. trace 문이 작동하고 있지만 거기에 있지만 텍스트가 통과하지 못하고 있습니다. 도와주세요!!!

패키지는 {

import flash.display.MovieClip; 


public class GameButton extends MovieClip { 


    public function GameButton() { 
     trace("Gamebutton has been created"); 
     this.blabel.text = "Click"; 
     stop(); 

    } 

} 

}

+0

어린이 인스턴스가 될 수 없다 : 당신은 여전히 ​​등

일부 코드에

충분히 이야기 좌표를 알아 내기 위해 플래시의 드래그 앤 드롭 부품을 사용하고 각각의 무비 클립을 만들 수 있습니다 부모 인스턴스의 생성자 내에서 코드에 의해 액세스되는 것은 코드 실행의 그 시점에서 생성되지 않았기 때문입니다. 자식에 액세스하기 전에 부모는 코드로 자식 인스턴스를 만들거나 자식이 Event.ADDED_TO_STAGE 이벤트를 전달하도록 수신 대기하는 콜백 함수에 대한 액세스를 지연해야합니다. http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/MovieClip.html – shaunhusain

답변

0

길고 그것의 짧은 당신이 부모 개체에서 오는 이벤트를 무대에 추가 된 듣고 시도 할 수있는 다른 코드로 버튼을 만들거나 할 수 있습니다 당신 (아마 무대, 어쩌면 또 다른 DisplayObjectContainer에) 아이들을 추가 할 것입니다. 청취 방법의 문제점은 어떤 지저분한 코드를 작성하지 않고 어떤 어린이가 이벤트를 전달했는지 어떻게 알 수 있을지 확신 할 수 없다는 것입니다. 첫 번째 옵션은 일반적으로 더 쉽고 더 합리적이라고 생각합니다. 저작 도구를 사용하는 대신 오브젝트를 늘리거나 줄이려면 x/y 좌표를 사용하여 인스턴스를 배치하거나 scaleX, scaleY를 적용해야한다는 점만주의하십시오. 플래시 프로페셔널에서 스테이지에 배치

package 
{ 
    import flash.display.MovieClip; 


    public class GameButton extends MovieClip { 

     private var blabel:TextField; //This can be any display object class or a class that extends from a display object class (Sprite, MovieClip, MyCustomButton etc.) 

     public function GameButton() { 
      blabel = new TextField(); //The type after new, should be the same, or a sub-class (extension) of the type used in the variable declaration above 
      addChild(blabel); 

      //blabel.x=10; //optional over ten pixels from left 
      //blabel.y=10; //optional down ten pixels from top 
      //blabel.scaleX=.5; //optional half the width 
      //blabel.scaleY=2; //optional 2 times taller 

      trace("Gamebutton has been created"); 
      blabel.text = "Click"; 
      stop(); 

     } 

    } 
}