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 中并使其编译无误。干杯!
正在尝试创建响应 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 中并使其编译无误。干杯!