变量addChild没有定义?

Dun*_*geo 3 actionscript-3 addchild flash-cs3

我有一个问题使用AS3 - Flash CS3给我这个错误信息:错误#1065:未定义变量addChild.

有什么想法有什么不对吗?

这是我的代码:

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;
        }
    }    
}
Run Code Online (Sandbox Code Playgroud)

Jac*_*rdt 5

这是因为SimpleButton不是从DisplayObjectContainer继承而是从InteractiveObject继承.

addChild是DisplayObjectContainer的一个方法.SimpleButton包含3个状态的3个displayobject和hittest对象,它们被命名为upState,overState,downState和hitTestState.

所以你应该能够设置其中一个.

//addChild(result);
upState = result;
Run Code Online (Sandbox Code Playgroud)

您可以只将状态添加一个DisplayObjectContainer(如Sprite),然后在那里添加TextField,以防您想要向状态添加更多图形.

upState = new Sprite();
upState.addChild(new MyButtonBackground()); //Make this class.
upState.addChild(result);
Run Code Online (Sandbox Code Playgroud)