Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 AS3键盘动画字符-编译器错误到处都是,尽管下面的教程中有详细说明_Actionscript 3_Flash - Fatal编程技术网

Actionscript 3 AS3键盘动画字符-编译器错误到处都是,尽管下面的教程中有详细说明

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

尝试在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;
}
}
上面的代码有什么问题?我们遵循了本教程,它看起来非常简单,但是当我们键入一个花括号时,它会以红色突出显示,然后当我们尝试测试时,我们会收到编译器错误

场景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
已关闭以启动。使用鼠标是可能的,需要更多的代码才能完成,但是有多种方法可以实现这一点。