我在使用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;
}
}
}
答案 0 :(得分:5)
这是因为SimpleButton不是从DisplayObjectContainer继承而是从InteractiveObject继承。
addChild是DisplayObjectContainer的一个方法。 SimpleButton包含3个状态的3个displayobject和hittest对象,它们被命名为upState,overState,downState和hitTestState。
所以你应该可以设置其中一个。
//addChild(result);
upState = result;
你可以只将状态添加一个DisplayObjectContainer(如Sprite),然后在那里添加TextField,以防你想在状态中添加更多图形。
upState = new Sprite();
upState.addChild(new MyButtonBackground()); //Make this class.
upState.addChild(result);