AS3 键盘动画角色 - 尽管遵循了这封信中的教程,但到处都是编译器错误

AS3 keyboard animated character - Compiler errors all over the place despite following tutorial to the letter

正在尝试创建响应 Flash Professional CC 中的键盘输入的 2D 角色。我儿子和我试过的每个 YouTube 教程都会产生编译器错误,但没有任何效果。

import flash.events.KeyboardEvent;
import flash.events.Event;

var rightKeyIsDown:Boolean = false;
var leftKeyIsDown:Boolean = false;
var upKeyIsDown:Boolean = false;
var downKeyIsDown:Boolean = false;

var playerSpeed:int = 7;

stage.addEventListener(KeyboardEvent.KEY_DOWN, pressAKey);
stage.addEventListener(KeyboardEvent.KEY_UP, releaseAKey);

function pressAKey(event:KeyboardEvent):void
{
if(event.keyCode == Keyboard.RIGHT)
{
    rightKeyIsDown = true;
}
if(event.keyCode == Keyboard.LEFT)
{
    leftKeyIsDown = true;
}
if(event.keyCode == Keyboard.UP)
{
    upKeyIsDown = true;
}
if(event.keyCode == Keyboard.DOWN)
{
    downKeyIsDown = true;
}
}   

function releaseAKey(event.KeyboardEvent):void
{
if(event.keyCode == Keyboard.RIGHT)
{
    rightKeyIsDown = false;
}
if(event.keyCode == Keyboard.LEFT)
{
    leftKeyIsDown = false;
}
if(event.keyCode == Keyboard.UP)
{
    upKeyIsDown = false;
}
if(event.keyCode == Keyboard.DOWN)
{
    downKeyIsDown = false;
}
}

player_mc.addEventListener(Event.ENTER_FRAME, moveThePlayer);

function moveThePlayer(event:Event):void
{       
if(rightKeyIsDown == true)
{
    player_mc.x += playerSpeed;
}

if(leftKeyIsDown == true)
{
    player_mc.x -+ playerSpeed;
}
}

上面的代码有什么问题?我们遵循了本教程,它看起来非常简单,但是当我们在大括号中键入它时,它会以红色突出显示,然后当我们尝试测试时,我们会收到编译器错误。

Scene 1, Layer 'Player', Frame 1, Line 35, Column 27 1084: Syntax error: expecting rightparen before dot.

我们正在使用 Flash Professional CC 和 AS3 - 是否有更好的资源来提供此类教程,因为我们已经被逼疯了,现在至少尝试了 5 种,但都没有成功。

非常感谢您提供有关上述错误原因的建议,以及我们在哪里可以找到实际有效的教程!

谢谢。 新泽西父子! :)

我将您的代码放入 Flash 中,没有发现任何与括号不匹配有关的问题;但是,我确实注意到以下错误

首先,在下面的if控制结构中:

if(leftKeyIsDown == true)
{
    player_mc.x -+ playerSpeed;
}

您正在尝试使用 -+ 的运算符,但 Flash ActionScript 中不存在这样的运算符。我认为您打算改为执行以下操作:

if(leftKeyIsDown == true)
{
    player_mc.x -= playerSpeed;
}

其次,问题就在这里:

function releaseAKey(event.KeyboardEvent):void
{
    // your code
}

您需要 : 来指定数据类型。不敢相信我错过了。所以应该是:

function releaseAKey(event:KeyboardEvent):void
{
    // your code
}

我能够将此代码插入到 Flash CC 中并使其编译无误。干杯!