循环没有完成

时间:2013-01-21 02:28:40

标签: javascript loops if-statement after-effects

由于某种原因,我的循环只进行了一次,尽管importedChar.numItems =2

效果项目从1开始而不是0,所以我使用x=1,这就是我拥有的

for(x=1; x < importedChar.numItems; x++) {
    if (importedChar.item(x) instanceof CompItem) {
        //Add imported Char to Main Comp
        var newObj = null;      
        var newObj = myComp.layers.add(importedChar.item(x))

        //Move Layer under null
        newObj.moveAfter(newNull);

        //Parent to Null
        newObj.parent = newNull;
    }    
}

如果第一个项目是一个合成它运行正常,但如果它是第二个

则离开循环

2 个答案:

答案 0 :(得分:3)

您需要使用<=代替<才能让它运行两次。

修改:或者for(x=0; x < importedChar.numItems; x++) {,然后在需要使用x+1时使用<=,但在可以避免使用{{1}}的情况下,{{1}}更可取

当您需要访问索引有意义的值(例如,打印人性化的错误消息)时,通常会出现您希望替代方案的情况

答案 1 :(得分:2)

x = 1, importedChar.numItems =2, x < importedChar.numItems true;

然后x = 2, importedChar.numItems =2, x < importedChar.numItems false; 所以出了循环

我猜这种方式