2009-04-07 11 views
3

J'ai un problème en utilisant AS3 - Flash CS3 me donne ce message d'erreur: Erreur # 1065: La variable addChild n'est pas définie.La variable addChild n'est pas définie?

Des idées quel est le problème?

Ceci est mon code:

package coa.application{ 
    import flash.display.SimpleButton; 
    import flash.text.TextField; 
    import flash.text.TextFieldType; 

    public class Tab extends SimpleButton { 

     public var menuType:String; 

     public function Tab(tabText:String, menuType:String) { 
      this.menuType=menuType; 
      var mytext:TextField=createTextField(0,0,200,20); 
      mytext.text=tabText; 
     } 
     private function createTextField(x:Number, y:Number, width:Number, height:Number):TextField { 
      var result:TextField = new TextField(); 
      result.x=x; 
      result.y=y; 
      result.width=width; 
      result.height=height; 
      addChild(result); 
      return result; 
     } 
    }  
} 

Répondre

5

C'est parce que SimpleButton ne hérite pas de DisplayObjectContainer mais de InteractiveObject.

addChild est une méthode de DisplayObjectContainer. SimpleButton contient 3 displayobject pour les 3 états et l'objet le plus hittest, ils sont nommés upState, overState, downState et hitTestState.

Vous devriez donc pouvoir en définir un.

//addChild(result); 
upState = result; 

Vous pouvez simplement ajouter un DisplayObjectContainer (comme un Sprite) aux Etats, puis ajoutez le TextField il à la place, au cas où vous voulez ajouter plus de graphiques aux états.

upState = new Sprite(); 
upState.addChild(new MyButtonBackground()); //Make this class. 
upState.addChild(result); 
+0

Merci pour votre clarification. – AnthonyWJones