AS3 - 错误1119 - 通过具有静态类型Class的引用访问可能未定义的属性y

时间:2013-09-20 19:23:12

标签: actionscript-3 flash

所以我搜索了这个网站以及其他一些与错误代码1119相关的内容,但没有一个真正帮助我弄清楚出了什么问题。基本上,对于4个不同的代码片段,相同的错误也会出现2次,这些代码也彼此非常相似。它们只是将闪存中的对象移动一定数量单位所需的代码。这是所有代码:

package
{
    import flash.display.MovieClip;
    import flash.events.Event;
    import flash.events.KeyboardEvent;

    public class Work extends MovieClip
    {
        var touching:Boolean = false;

        public function Work()
        {
            startGame();
        }
        function startGame():void
        {
            stage.addEventListener(Event.ENTER_FRAME, gameLoop);
            stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
        }
        function gameLoop(event:Event):void
        {
            checkCollisions();
        }
        function keyDownHandler(keyEvent:KeyboardEvent):void
        {
            if (keyEvent.keyCode == 40) 
            {
                flyer.y += 10; 
                }
            else if (keyEvent.keyCode == 39) {
                flyer.x += 10; 
                }
            else if (keyEvent.keyCode == 37) {
                flyer.x -= 10; 
                }
            else if (keyEvent.keyCode == 38) {
                flyer.y -= 10; 
            }
        }

        function checkCollisions()
        {
            if (flyer.hitTestObject(square))
            {
                touching = true;
            }
            else
            {
                touching = false;
            }
        }
    }
}

(我不知道为什么第一部分被排除在编码框之外,但是很好。我无法手动缩进,因为Tab键更改了我网页上的选择)

现在,这是确切的代码,它给了我错误:

function keyDownHandler(keyEvent:KeyboardEvent):void {

    if (keyEvent.keyCode == 40) {
        flyer.y += 10; 
    }
    else if (keyEvent.keyCode == 39) {
        flyer.x += 10; 
    }
    else if (keyEvent.keyCode == 37) {
        flyer.x -= 10; 
    }
    else if (keyEvent.keyCode == 38) {
        flyer.y -= 10; 
    }

(再次,文字bug''对我而言) 现在,它不只是在其中一个上发现1119错误,而是所有这些,两个!在这里,让我告诉你:

example

要求帮助的另一件事是你在错误列表底部看到的最后一个错误。它也让我感到困惑,错误1061.它说hitTestObject是一种未定义的方法,但不仅我以前使用它,而且我看到它一直使用! 我真的不知道为什么我会收到这些错误,为什么他们会弹出两次,或者如何修复它们。非常感谢一些帮助!

1 个答案:

答案 0 :(得分:3)

可能性是:

  • 您尚未将flyer定义为符号的实例名称

    instance

  • flyer不是DisplayObject

  • 此ActionScript代码的执行范围与flyer实例不同,例如在不同的时间轴框架或符号上