0

我有这个问题,只有最后一个函数有效,而所有前面的函数都被 flash 忽略了。由于所有的函数都是用同样的方式写的,所以我找不到问题所在。

此代码只是一个用于更改场景类型的按钮,我按下某个键并更改它,但在这种情况下,只有我选择的最后一个键有效。

任何提示?

var gomas:Object = new Object();
var chocolate:Object = new Object();
var tarte:Object = new Object();
var peixe:Object = new Object();
var lama:Object = new Object();

gomas.onKeyDown = function() 
    {
        if (Key.getCode() == "51","54","222","87","73","71","86"); 
            {
                   loadMovieNum("01 Gomas.swf",0);
            }
    };
Key.addListener(gomas);

chocolate.onKeyDown = function() 
    {
        if (Key.getCode() == "49","56","69","71","76","67","78");
            {
                   loadMovieNum("02 Chocolate.swf",0);
            }
    };
Key.addListener(chocolate);

tarte.onKeyDown = function() 
    {
        if (Key.getCode() == "52","48","82","75","66","85");
            {
                   loadMovieNum("03 Tarte.swf",0);
            }
    };
Key.addListener(tarte);

peixe.onKeyDown = function() 
    {
        if (Key.getCode() == "50","55","84","79","83","72","77"); 
            {
                   loadMovieNum("04 Peixe.swf",0);
            }
    };
Key.addListener(peixe);

lama.onKeyDown = function() 
    {
        if (Key.getCode() == "53","57","81","89","80","68","74"); 
            {
                   loadMovieNum("05 Lama.swf",0);
            }
    };
Key.addListener(lama);
4

1 回答 1

1

看起来问题出在您的 if 语句中。运行您的代码,所有方法都会在按下某个键时按顺序调用。由于它们都将 swf 加载到同一级别,因此它们会覆盖导致最后一个被加载。

我不认为你可以这样输入逗号,它似乎被视为一种不同的条件。这总是找出“是”(我的猜测是由于“54”是“真实的”):

var temp:String = "1";
if(temp == "0", "54"){
    trace("yes");
}

我建议使用 switch 语句,因为您只想检查与单个值匹配的键码。

于 2013-04-23T23:22:47.957 回答