【问题标题】:Error 1119 in Actionscript 3 (as3) Access of possibly undefined property text through a reference with static type money_txtActionscript 3 (as3) 中的错误 1119 通过静态类型 money_txt 的引用访问可能未定义的属性文本
【发布时间】:2016-07-16 15:42:13
【问题描述】:

这是在主类中

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 的引用访问可能未定义的属性文本。

如果可以的话,感谢您的帮助!

【问题讨论】:

    标签: actionscript-3 flash


    【解决方案1】:

    这些应该被定义为公共的

    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 是类还是 MovieClip 实例。约定规定类应以大写字母开头,实例以小写字母开头。

    更新

    问题在于,如果 button 和 playbutton 是按钮,而 playtext 和 money_txt 是 MovieClip,您应该这样实例化它们。

    例如,如果你有

    public var mainbtn:button = new button();
    

    但是没有名称为button 的类,mainbtn 将为空。你可能需要做的是

    public var mainbtn:Button;
    public var cash:MovieClip;
    

    作为主要功能或其他功能的一部分,分配实例

    mainbtn = this['button'];
    cash = this['money_txt'];
    

    您可以通过检查trace(cash); 来检查这是否有效,如果分配无效,它将返回 null。

    不过,我应该再次强调,如果不知道您的设置是什么,就很难知道到底出了什么问题。我假设 money_txt 和您定义的其他类实际上并不是具有自己的链接 ID 的类,而是您正在放入此代码的 MovieClip 或舞台中的按钮和影片剪辑。

    【讨论】:

    • money_txt 是一个movieclip,playbutton 是一个按钮,playtext 是一个movieclip,而button 是一个按钮
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-17
    • 1970-01-01
    • 1970-01-01
    • 2014-10-02
    • 2015-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多