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 回答