0

cc.Layer ですべての子を取得するために多くの方法を試します 私のレイヤーには、2 つの子がいます。次のコードを使用して、レイヤー内のすべての子のすべての子と runAction FadeOut を取得します

for (var child in this._children){
        child.runAction(
            cc.FadeOut.create(interval)
        );
}

この上記のコードでは。この「子」のタイプは cc.Node です。しかし、これの値は、このチルレンの「インデックス」です (例: 0 または 1)。そのため、「runAction」を実行すると、「オブジェクト 0 にはメソッド「runAction」がありません」というエラーが表示されました。

2つの変数を比較するために、次のようにタグで子を取得しようとします

var child0 = this.getChildByTag(0);

結果も cc.Node ですが、値は前のコードとはまったく異なります。そして、エラーなしで「runAction」メソッドを完全に実行します

では、「getChildByTag」メソッドのように、すべての子を取得して各子を受け取るにはどうすればよいでしょうか。

前もって感謝します

4

1 に答える 1

0

簡単な方法で問題を解決しました。for ループに問題があることがわかりました。for-in i を使用する代わりに、次を使用します。

 var childNode = this._children;
    for (var i=0; i<childNode.length; i++){
        var child = childNode[i];
        child.runAction(
            cc.FadeOut.create(interval),
            cc.CallFunc.create(this.removeFromParent,this,true)
        );
 }

それは完全に正しいです!

于 2014-03-25T04:54:30.627 に答える