我在使用 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;
        }
    }
}

最佳答案

这是因为 SimpleButton 不是从 DisplayObjectContainer 继承的,而是从 InteractiveObject 继承的。

addChild 是 DisplayObjectContainer 中的一个方法。 SimpleButton 包含 3 个显示对象,用于 3 个状态和测试对象,它们分别命名为 upState、overState、downState 和 hitTestState。

所以你应该能够设置其中之一。

//addChild(result);
upState = result;

您可以向状态添加一个 DisplayObjectContainer(如 Sprite),然后在那里添加 TextField,以防您想向状态添加更多图形。
upState = new Sprite();
upState.addChild(new MyButtonBackground()); //Make this class.
upState.addChild(result);

关于actionscript-3 - 变量 addChild 没有定义?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/725143/

10-12 23:20