0

出于某种原因,尽管我的循环只经过一次importedChar.numItems =2

After effects item 从 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;
    }    
}

如果第一个项目是一个组合,它运行良好,但如果它是第二个则离开循环

4

2 回答 2

3

您需要使用<=而不是<让它运行两次。

编辑:或者,for(x=0; x < importedChar.numItems; x++) {然后x+1在您需要使用它时使用它,但在您可以避免这种情况的情况下,这<=是更可取的。

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

于 2013-01-21T02:31:34.863 回答
2

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

然后x = 2, importedChar.numItems =2, x < importedChar.numItems false; 如此循环

我猜这样

于 2013-01-21T02:31:45.980 回答