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 或舞台中的按钮和动画片段英寸