我有点问题。 我有以下功能:tweenlite问题
private function elementsLoadedHandler(e:Event):void
{
elementContainer=new Sprite();
var currentItem:uint;
for (var i:uint=0; i < numberItems; i++)
{
var element:Element=new Element(elementModel.elements[currentItem]);
element.x=xPos;
element.alpha=.5;
addChild(element);
xPos+=130;
currentItem++;
elementsArr.push(element);
if (currentItem >= elementModel.elements.length)
{
currentItem == 0;
}
}
movementTimer=new Timer(_movementSpeed, 0);
movementTimer.addEventListener(TimerEvent.TIMER, moveItems);
movementTimer.start();
layout();
}
什么这basicly确实是从阵列到旁边的海誓山盟阶段处的元件。现在我想让他们一起向右移动。我这样做如下:
private function moveItems(e:TimerEvent):void
{
var alphaVal:Number=.5;
movementTimer.delay+=25;
for (var i:uint=0; i < elementsArr.length; i++)
{
xPos=elementsArr[i].x + 130;
TweenLite.to(elementsArr[i], .5, {x: "130"});
if (elementsArr[i].x > _width)
{
elementsArr[i].x=0;
}
}
}
所以我移动的项目到右侧,然后我检查的最后一个项目是舞台之外,如果让我重新设置其位置为0,因此它可以追溯到左边,这样我有一个连续的项目向右移动。 问题是,我这样做,我有11个补间每秒执行,这使得它滞后。我正在考虑将物品放入容器并补间容器,但我似乎并没有得到很好的连续流动。有谁知道如何解决这个问题?
此外,在第一个函数中,你可以看到我正在做一个for循环。 numberItems
变量代表11,但elementModel.elements
中的项目数量只有6个,所以对于其他5个元素,我只需从数组中选择前5个项目。问题是,当我跟踪这些项目它给了我0.我怎么能从一个数组中的项目多次而不覆盖它的以前的版本?