如果声明未被承认

时间:2014-04-01 08:41:20

标签: actionscript-3

我是动作脚本3的新手我试图制作一部电影,我可以用左右箭头键控制屏幕上的一个框,但我不断收到一条消息"可能的访问undefined属性LEFT通过带有静态类的引用"。某些陈述不会变成蓝色,例如if和function? 这是代码:

stage.addEventListener(KeyboardEvent.KEY_DOWN,myFunction);

function myFunction (event:KeyboardEvent){

    if (event.keyCode == KeyboardEvent.LEFT){
        blueBox.x -=5
    }
    if (event.keyCode == KeyboardEvent.RIGHT){
        blueBox.x +=5
    }
}

3 个答案:

答案 0 :(得分:1)

KeyboardEvent没有像LEFT或RIGHT这样的属性,你要找的是Keyboard.LEFT / RIGHT。像:

if (event.keyCode == Keyboard.LEFT){
   blueBox.x -=5
}
if (event.keyCode == Keyboard.RIGHT){
    blueBox.x +=5
}

键盘文档:Adobe Documentation

答案 1 :(得分:0)

在代码开头,您需要导入KeyboardEvent和Keyboard Classes,即:

import flash.events.KeyboardEvent;
import flash.ui.Keyboard;

您还应将KeyboardEvent.LEFT和KeyboardEvent.RIGHT更改为:

if (event.keyCode==Keyboard.LEFT)

if (event.keyCode==Keyboard.RIGHT)

原因是什么? ActionScript正在尝试访问Keyboard.LEFT和Keyboard.RIGHT静态变量中包含的数字,并且需要访问Keyboard类才能执行此操作。

答案 2 :(得分:0)

我不认为有KeyBoardEvent.LEFT / RIGHT这样的东西。尝试将左侧更改为37,右侧更改为39.它们是这些键的数值。