2011-04-22 51 views
0

你好,我被困在这个试图在游戏中显示游戏级别并获得输出错误1009的游戏。我做错了事情,但不能数字。这里是代码:错误1009无法访问属性----再次

        if (levelNumber ==1) { 
        var level:Number = 1; 
        showLevel.text=level.toString(); 
        showLevel.text = String ("Level:  " +level); 


       if (levelNumber ==2) { 
        var level:Number = 2; 
        showLevel.text=level.toString(); 
        showLevel.text = String("Level:  " +level); 
        var numBombs:Number = 4; 

       }else if(levelNumber ==3) { 
        var level:Number = 3; 
        showLevel.text=level.toString(); 
        showLevel.text = String ("Level:  " +level); 

调试器说这是showLevel.text = level.toString()的行;我已经设置为一个数字,即私人无功等级:数字= 0。我希望这是足够的代码,让你知道这里发生了什么。它也会出现一个重复的变量定义 - var级别的编译器错误:Number = 2,下一个= 3。提前感谢您的帮助。干杯。

+0

您是否有可用的调试器?在问题行上设置断点并查看发生了什么。从这段代码我不能告诉什么类型的showLevel。另外,在if/else之前声明'var level' - ActionScript没有块范围的本地化,因此重复定义。 – alxx 2011-04-22 05:57:41

回答

0

错误#1009确实是一个空引用错误。我看到你的等级被宣布并具有正确的价值。 也许重点在于你的showLevel对象(我猜它是一个标签)还没有被声明。

的问题可以是你使用:的

private var showLevel:mx.controls.Label; 

代替:

private var showLevel:mx.controls.Label = new mx.controls.Label(); 

否则,如果你让你showLevel在viewStack你必须确保你的内容是尚未创建。因此,您可以使用:

<mx:ViewStack id="yourView" creationPolicy="all"> 
+0

我很抱歉,但你的回答证明对我来说太过分了。我已经解决了无法在这个时候产生不同级别的游戏。希望在不久的将来,我会克服这个障碍。 – londonbird 2011-04-25 10:11:08

+0

有什么你想让我以更好的方式解释? – 2011-04-25 17:02:57

相关问题