Actionscript 3 AS3键盘动画字符-编译器错误到处都是,尽管下面的教程中有详细说明
尝试在Flash Professional CC中创建响应键盘输入的2D字符。我儿子和我尝试过的每一个YouTube教程都会产生编译器错误,但没有任何效果Actionscript 3 AS3键盘动画字符-编译器错误到处都是,尽管下面的教程中有详细说明,actionscript-3,flash,Actionscript 3,Flash,尝试在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 d
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;
}
}
上面的代码有什么问题?我们遵循了本教程,它看起来非常简单,但是当我们键入一个花括号时,它会以红色突出显示,然后当我们尝试测试时,我们会收到编译器错误
场景1,层“播放器”,第1帧,第35行,第27列1084:语法错误:在点之前应为rightparen
我们使用的是Flash Professional CC和AS3——有没有更好的资源来提供这类教程,因为我们已经疯狂地尝试了至少5种,但都没有成功
如果您能给我们一些建议,说明为什么上面的内容是错误的,以及我们在哪里可以找到真正有用的教程,我们将不胜感激
多谢各位。
NJ&Son!:) 我把你的代码扔进了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
}
我能够将这段代码插入到FlashCC中,并使其编译时没有错误。干杯 PO显示了一段代码,但不能保证它是产生错误的代码。现在我们得到以下编译错误-1084:语法错误:在点之前应为rightparen。第35行为:功能释放(事件.键盘事件):void@NathonJones,我找到了!见我更新的帖子。干杯太棒了,谢谢天空。你知道我需要添加什么来允许角色根据上下键的输入上下移动吗?此外,当用户移动鼠标时,是否可以移动角色?换句话说,是跟踪鼠标移动的角色?我们很高兴,我们的角色在动!谢谢你。@NathonJones,不客气。要上下移动角色,只需遵循左右移动的模型,但更改函数名称以反映上下移动,并使用
.x
属性代替.y
属性。您已经有了布尔标志upKeyIsDown
,并且diownKeyIsDown
已关闭以启动。使用鼠标是可能的,需要更多的代码才能完成,但是有多种方法可以实现这一点。