0

我要做的事情是我需要在第 9 个圆圈上添加 50% 的 alpha,除了第 5 个圆圈,这是我迄今为止尝试过的……我缺少什么?顺便说一句,如果我用“break”替换“continue”,它会完美运行。

function rendreAlpha(pEvt:MouseEvent)
{
    for (var i:int=1; i<=9; i+=1)
    {
        trace(i);
        this["balle" + i + "_mc"].alpha = 0.5;
        if (i == 5)
        {
            continue;
        }
    }
}
btn2.addEventListener(MouseEvent.CLICK,rendreAlpha);
4

3 回答 3

2

设置. if_ _ _alpha

因此,continue;不会跳过任何额外的代码。

于 2013-03-07T03:28:12.647 回答
1

continue将结束循环中的当前迭代for并移至下一个迭代,跳过该迭代的 continue 语句之后发生的任何操作。

break将结束整个循环并跳过该迭代中发生的任何代码。

这是一个小演示,可以帮助您更清楚地理解两者:

for(var i:int = 0; i < 10; i++)
{
     if(i < 5)
     {
         // Skip the rest of the code in this block and move to the
         // next iteration.
         continue;
     }

     trace(i);

     if(i === 8)
     {
         // End the entire loop.
         break;
     }
}

您会注意到您的输出仅包括5,6,7 & 8. 这是因为我们continue跳过trace块中的语句 ifi小于 5,并在它达到 8 时结束循环。

于 2013-03-07T04:50:29.363 回答
0

在 Flash 播放器 10.1 中:

private static function stackDump():void
    {

        //obj can be an object, dictionary, vector, array.
        //probably anything that can be accessed using bracket notation.
        var obj:Array = [1, 2];
        var dex:int = 0;

        //if you access an object,vector,array,or dictionary using a nested incrimentor operator
        //followed by a continue statement, you will get a stack dump.
        //The loop can be a for, while, or do loop.
        while (false)
        {
            obj[dex++] = 0;
            continue;
        }

    }//end stackDump
于 2014-09-11T21:02:35.803 回答