当我使用Main.as时:
appleObject.setX(50);
调用Floater.as中的函数:
public function setX(positionX):void {
trace("hello");
}
从Floater.as ,但我收到错误1120:访问未定义的属性appleObject。
Main.as:http://pastebin.com/CHMdYM8r
Floater.as:http://pastebin.com/BV4PbfXe
答案 0 :(得分:0)
详细说明评论中所说的内容:
在AS3类文件中,所有功能代码都需要包装在方法(函数)中。
所以当编译器看到这一行时:
appleObject.setX(50);
期望它是变量声明或函数声明。在函数内移动该行,编译器错误应该消失。正如@DodgerThud在评论中所建议的那样,将它放在构造函数中会有很大的意义:
public function Main():void {
score.text = "hello";
addChild(bananaObject);
addChild(appleObject);
appleObject.setX(50);
//...rest of code
顺便说一句,在类范围内不实例化复杂对象也是一种很好的做法。所以这会更好:
private var appleObject:Floater;
public function Main():void {
score.text = "hello";
addChild(bananaObject);
appleObject = new Floater();
addChild(appleObject);
appleObject.setX(50)