1

我正在使用 Flash Professional CS5.5 中的 Actionscript 3.0 编写游戏脚本,但出现错误。

Scene 1, Layer 'as2', Frame 153, Line 4 1151: A conflict exists with definition leftIdle1 in namespace internal.

(我也将这些与其他变量一起使用。)

现在它是一个平台游戏,我将在游戏中放置过场动画,我需要从帧切换并将代码放在另一个帧中。但它给出了那个错误,我关闭了“自动声明舞台实例”功能,现在我检查了这个网站并用谷歌搜索了它,人们用他们的 Movieclips 得到它,我用我的变量得到它。

这是我的脚本:

var leftKeyDown1:Boolean = false;
var rightKeyDown1:Boolean = false;
var spaceKeyDown1:Boolean = false;
var leftIdle1:Boolean = false;
var rightIdle1:Boolean = true;
var mainSpeed1:Number = 4;


player.addEventListener(Event.ENTER_FRAME, moveChar);
function moveChar(event:Event)
{

    if (leftKeyDown1)
    {
        player.x -=  mainSpeed1;
        leftIdle1 = true;
        rightIdle1 = false;
        player.gotoAndStop("walk_left");
    }
    if (rightKeyDown1)
    {
        player.x +=  mainSpeed1;
        rightIdle1 = true;
        leftIdle1 = false;
        player.gotoAndStop("walk_right");
    }

    if (rightIdle1 && !rightKeyDown1 && !leftKeyDown1)
    {
        player.gotoAndStop("idle_right");
    }
    else if (leftIdle1 && !rightKeyDown1 && !leftKeyDown1)
    {
        player.gotoAndStop("idle_left");
    }

    if (collide.hitTestObject(player))
    {
        player.x = player.x + mainSpeed1;
    }

    if (trigger1.hitTestObject(player))
    {
        son1.gotoAndStop("walkRight");
        trigger1.gotoAndStop(2);
        son1.x +=  2;
    }
    if (trigger2.hitTestObject(player))
    {
        gotoAndPlay(4);
    }
}

stage.addEventListener(KeyboardEvent.KEY_DOWN, checkKeysDown);
function checkKeysDown(event:KeyboardEvent)
{
    if (event.keyCode == 37 || event.keyCode == 65)
    {
        leftKeyDown1 = true;
    }
    if (event.keyCode == 39 || event.keyCode == 68)
    {
        rightKeyDown1 = true;
    }
    if (event.keyCode == 32)
    {
        spaceKeyDown1 = true;
    }
}

stage.addEventListener(KeyboardEvent.KEY_UP, checkKeysU1);
function checkKeysUp(event:KeyboardEvent)
{

    if (event.keyCode == 37 || event.keyCode == 65)
    {
        leftKeyDown1 = false;
    }
    if (event.keyCode == 32)
    {
        spaceKeyDown1 = false;
    }
    if (event.keyCode == 39 || event.keyCode == 68)
    {
        rightKeyDown1 = false;
    }

}

它可能以一种奇怪的方式编码,但无论如何。我现在不知道该怎么做。帮助将不胜感激。

编辑:

哦,我也遇到了另一个错误。它具有重复功能,我似乎无法修复它,只能重命名它们,每次重命名它们都需要很长时间。因此,如果有人对此有所帮助,谢谢!

4

1 回答 1

3

你有重复的定义。

例如:

var leftIdle1:Boolean

多次存在 - 删除重复项

于 2013-10-09T20:37:59.760 回答