1

我正在尝试使用吸气剂,但是在将代码简化为我能想到的最简单的事情之后,我仍然会遇到同样的错误。这是错误 1119 的代码

主要的:

package
{
    import flash.display.MovieClip;

    public class Main extends MovieClip
    {
        public function Main()
        {
            init();
        }
        public function init():void
        {
            if (Player.value == 23)
            {
                trace("if statment")
            }
            trace(Player.value);
        }
    }
}

玩家:

package
{
    public class Player
    {
        private var _numberOfKeys:uint;

        public function Player()
        {
            _numberOfKeys = 23;
        }
        public function get value():uint
        {
            return _numberOfKeys;
        }
    }
}

我在尝试使用 get 函数的两行都收到错误,如果我将 Player get value 函数更改为“public static function”,它会读取 _numberOfKeys 的值并说它是未定义的,但如果我硬编码一个数字,它会将它传递给没有问题的主要课程。

4

2 回答 2

0

如果您希望您的Main类包含 的实例Player,则从 main 实例化一个播放器init()

package
{
    import flash.display.MovieClip;

    public class Main extends MovieClip
    {
        public var player:Player;

        public function Main()
        {
            init();
        }
        public function init():void
        {
            player = new Player();
            trace(player.value);
        }
    }
}

否则,如果您打算让 Player 的value属性是静态的,那么它必须能够引用_numberOfKeys静态初始化的,例如:

package
{
    public class Player
    {
        private static var _numberOfKeys:uint = 23;

        public static function get value():uint
        {
            return _numberOfKeys;
        }
    }
}
于 2012-11-05T06:00:41.657 回答
0

为了理解这个问题,你需要理解一个类和一个类的实例之间的区别。静态函数可以从类本身访问,非静态函数只能在对象启动后访问。

要解决第一种情况,您需要编写如下内容:

package
{
    import flash.display.MovieClip;

    public class Main extends MovieClip
    {
        public function Main()
        {
            init();
        }
        public function init():void
        {
            var instance:Player = new Player();
            if (instance.value == 23)
            {
                trace("if statment")
            }
            trace(Player.value);
        }
    }
}

将值函数更改为静态时出现错误的原因是 _numberOfKeys 不是静态的。

于 2012-11-05T06:01:55.617 回答