ActionScript3,Flash Punk错误#1009:无法访问空对象引用的属性或方法

时间:2015-01-09 17:33:27

标签: actionscript-3 flash runtime-error flashdevelop

基本上我想使用flashpunk框架制作一个简单的测试游戏但是当我刚开始时遇到了这个运行时错误:[Fault]异常,information = TypeError:错误#1009:无法访问null对象的属性或方法参考。 故障,HandleInput()在Player.as:47

我知道这意味着我正在从null对象访问一个方法,但是我在Main.as中初始化了播放器对象而我没有在代码中看到任何错误,所以这导致了什么?

这是播放器类:`import net.flashpunk.utils.Input;     import net.flashpunk.utils.Key;     import net.flashpunk.Graphic;     import net.flashpunk.graphics.Image;

/**
 * ...Player class , manages physics , input and other stuff
 * @author Mohamed Atef
 */
public class Player extends PhysicsEntity
{
    //Input Variables

    //Movement Variables
    /**
     * The velocity by which the Player will move in the x-axis .
     */
    var movementVelocity : Number;

    //Embedding .
    [Embed(source = "../../Assets/Sprites/Player/Head.png")]
    private const sprite_IMG : Class;

    public function Player() 
    {
        x = 10;
        y = 10;
        graphic = new Image(sprite_IMG);
        enableGravity = true;
    }

    private function HandleInput():void
    {
        if (Input.check(Key.LEFT))
        {
            velocity.x = -movementVelocity;
        }
        else if (Input.check(Key.RIGHT))
        {
            velocity.x = movementVelocity;
        }
        else
        {
            velocity.x = 0;
        }
    }

    override public function update():void 
    {
        HandleInput();
        HandlePhysics();
    }

}`

以下是我创建播放器并将其添加到世界的Main.as。

import Classes.Entitys.Player;
import Classes.Levels.Level;
import flash.display.Sprite;
import flash.events.Event;
import net.flashpunk.Engine;
import net.flashpunk.FP;
import net.flashpunk.World;

/**
 * ...
 * @author Mohamed Atef
 */
public class Main extends Engine
{
    var player : Player;

    public function Main():void 
    {
        super(800, 600, 60, false);
        player = new Player();
        trace (player);
        FP.world = new Level();
    }

}

我是ActionScript 3.0和flashpunk的新手,这是第一个项目,但我不喜欢编程。

2 个答案:

答案 0 :(得分:0)

似乎您的错误是尝试使用方法Input.check - 检查对象或类Input是否为null,哟

答案 1 :(得分:0)

我找到了解决方案,一些变量为null,方法和播放器或Input对象没有任何处理它。

我有点误以为错误认为这意味着"功能"本身正在被召唤 一个null对象,我认为是因为我的第一个AC3项目和FlashDevelop IDE的新项目(来自C#visual studio)。