2009-04-07 25 views
3

Ich habe ein Problem mit AS3 - Flash CS3 gibt mir diese Fehlermeldung: Fehler # 1065: Variable addChild ist nicht definiert.Variable addChild ist nicht definiert?

Irgendwelche Ideen, was ist los?

Dies ist mein 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; 
     } 
    }  
} 

Antwort

5

Es ist, weil SimpleButton- von Display erbt nicht aber von Interactive.

addChild ist eine Methode von DisplayObjectContainer. SimpleButton enthält 3 displayobject für die 3 states und das hittest-Objekt, sie heißen upState, overState, downState und hitTestState.

Sie sollten also in der Lage sein, einen von ihnen zu setzen.

//addChild(result); 
upState = result; 

Sie könnten nur einen Display hinzufügen (wie ein Sprite) in die Staaten und dann die TextField- hinzufügen, dass es stattdessen im Fall, dass Sie mehr Grafiken auf die Zustände hinzuzufügen.

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

Danke für Ihre Klarstellung. – AnthonyWJones

Verwandte Themen