0

参照渡しと Greensock TweenLite クラスについて何か思い出したようです。私が考えることができる唯一のことは、このビットのコードが意図したとおりに機能しない原因です。

for (var i = 0; i < 10; ++i) {
    addItem();
}



public function addItem():MovieClip {
    var item:MovieClip = getNewItem();

    item.y = item.height / 2;
    var newPosY = _origHeight - _items.length * item.height;

    _items.push(item);
    new TweenLite(item, ITEM_DROP_TIME, { y: newPosY } ); trace(newPosY);

    addChild(item);
}

トレースは、私が期待する値を出力しています。各数値が最後の数値よりも大きい増分シーケンスです (項目の高さによる)。ただし、視覚的には、すべてのアイテムが同じ場所に配置されていることがわかります (あたかもnewPosYトゥイーンのすべてのインスタンスで同じであるかのように)。

頭に浮かぶ唯一のことは、newPosY が参照によって渡されていることです。したがって、トゥイーンの各インスタンスは実際にはまったく同じ値を参照しています。何か不足していますか?または、トゥイーン プロパティの値の範囲を分離するために何らかの閉鎖が必要ですか?

編集

答えは「いいえ」であり、問​​題は私のコードの他の場所にあると思うので、この質問を閉じることを提案します。この問題のこれ以上の説明が他の人に関係があるとは思えません。回答してくれた人に感謝します!

4

1 に答える 1

0

TweenLite の構文が間違っていると思います。試す:

TweenLite.to (item, ITEM_DROP_TIME, { y: newPosY } );
于 2011-11-12T15:25:21.153 に答える