Actionscript 3 (as3) 中的错误 1119 通过静态类型 money_txt 的引用访问可能未定义的 属性 文本
Error 1119 in Actionscript 3 (as3) Access of possibly undefined property text through a reference with static type money_txt
这是主要的class
package {
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.display.Sprite;
import flash.events.Event;
public class main extends MovieClip {
public var scene = 0;
public var _money = 0;
public var gain = 1;
public var clicks = 0;
public function main() {
addEventListener(Event.ENTER_FRAME, loop);
mainbtn.addEventListener(MouseEvent.CLICK, handler);
playbtn.addEventListener(MouseEvent.CLICK, playHandler);
}
var mainbtn:button = new button();
var playbtn:playbutton = new playbutton();
var playtxt:playtext = new playtext();
var cash:money_txt = new money_txt();
var scene0:MovieClip = new MovieClip();
var scene1:MovieClip = new MovieClip();
public function loop(e:Event):void {
if(scene == 0) {
addChild(scene0)
scene0.addChild(playbtn);
playbtn.x = 300;
playbtn.y = 200;
scene0.addChild(playtxt);
playtxt.x = 300;
playtxt.y = 100;
} else {
scene0.removeChild(playbtn);
scene0.removeChild(playtxt);
}
if(scene == 1) {
addChild(scene1);
scene1.addChild(mainbtn);
mainbtn.x = 300;
mainbtn.y = 200;
scene1.addChild(cash);
cash.text = 'Money: ' + _money.toString();
} else {
scene1.removeChild(mainbtn);
}
}
public function playclickHandler(e:MovieClip) {
scene = 1;
}
public function handler(e:MouseEvent):void {
_money += gain;
clicks++;
trace('yep');
}
public function playHandler(e:MouseEvent):void {
scene = 1;
}
}
}
这就是错误所在
C:\Users\Slime\Desktop\Art-ish\game\main.as,第 47 行,第 10 列 1119:通过静态类型 money_txt.
的引用访问可能未定义的 属性 文本
感谢您的帮助!
这些应该定义为public
public var mainbtn:button = new button();
public var playbtn:playbutton = new playbutton();
public var playtxt:playtext = new playtext();
public var cash:money_txt = new money_txt();
public var scene0:MovieClip = new MovieClip();
public var scene1:MovieClip = new MovieClip();
也很难判断 money_txt、playtext、playbutton 和 button 是 classes 还是 MovieClip 实例。惯例规定 类 应以大写字母开头,实例以小写开头。
更新
问题是如果 button 和 playbutton 是按钮和播放文本,而 money_txt 是 MovieClip,您应该将它们实例化。
例如,如果您有
public var mainbtn:button = new button();
但没有名称为 button
的 class,mainbtn
将为空。您可能需要做的是
public var mainbtn:Button;
public var cash:MovieClip;
并作为主要功能或其他功能的一部分,分配实例
mainbtn = this['button'];
cash = this['money_txt'];
您可以通过检查 trace(cash);
来检查这是否有效,如果分配无效,这将 return null。
不过我要再次强调,如果不知道您的设置是什么,很难知道到底出了什么问题。我假设 money_txt
和您定义的其他 classes 实际上并不是具有自己的链接 ID 的 classes,而是您放置此代码的 MovieClip 或舞台中的按钮和动画片段英寸
这是主要的class
package {
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.display.Sprite;
import flash.events.Event;
public class main extends MovieClip {
public var scene = 0;
public var _money = 0;
public var gain = 1;
public var clicks = 0;
public function main() {
addEventListener(Event.ENTER_FRAME, loop);
mainbtn.addEventListener(MouseEvent.CLICK, handler);
playbtn.addEventListener(MouseEvent.CLICK, playHandler);
}
var mainbtn:button = new button();
var playbtn:playbutton = new playbutton();
var playtxt:playtext = new playtext();
var cash:money_txt = new money_txt();
var scene0:MovieClip = new MovieClip();
var scene1:MovieClip = new MovieClip();
public function loop(e:Event):void {
if(scene == 0) {
addChild(scene0)
scene0.addChild(playbtn);
playbtn.x = 300;
playbtn.y = 200;
scene0.addChild(playtxt);
playtxt.x = 300;
playtxt.y = 100;
} else {
scene0.removeChild(playbtn);
scene0.removeChild(playtxt);
}
if(scene == 1) {
addChild(scene1);
scene1.addChild(mainbtn);
mainbtn.x = 300;
mainbtn.y = 200;
scene1.addChild(cash);
cash.text = 'Money: ' + _money.toString();
} else {
scene1.removeChild(mainbtn);
}
}
public function playclickHandler(e:MovieClip) {
scene = 1;
}
public function handler(e:MouseEvent):void {
_money += gain;
clicks++;
trace('yep');
}
public function playHandler(e:MouseEvent):void {
scene = 1;
}
}
} 这就是错误所在 C:\Users\Slime\Desktop\Art-ish\game\main.as,第 47 行,第 10 列 1119:通过静态类型 money_txt.
的引用访问可能未定义的 属性 文本感谢您的帮助!
这些应该定义为public
public var mainbtn:button = new button();
public var playbtn:playbutton = new playbutton();
public var playtxt:playtext = new playtext();
public var cash:money_txt = new money_txt();
public var scene0:MovieClip = new MovieClip();
public var scene1:MovieClip = new MovieClip();
也很难判断 money_txt、playtext、playbutton 和 button 是 classes 还是 MovieClip 实例。惯例规定 类 应以大写字母开头,实例以小写开头。
更新
问题是如果 button 和 playbutton 是按钮和播放文本,而 money_txt 是 MovieClip,您应该将它们实例化。
例如,如果您有
public var mainbtn:button = new button();
但没有名称为 button
的 class,mainbtn
将为空。您可能需要做的是
public var mainbtn:Button;
public var cash:MovieClip;
并作为主要功能或其他功能的一部分,分配实例
mainbtn = this['button'];
cash = this['money_txt'];
您可以通过检查 trace(cash);
来检查这是否有效,如果分配无效,这将 return null。
不过我要再次强调,如果不知道您的设置是什么,很难知道到底出了什么问题。我假设 money_txt
和您定义的其他 classes 实际上并不是具有自己的链接 ID 的 classes,而是您放置此代码的 MovieClip 或舞台中的按钮和动画片段英寸