Actionscript 3 tweenlite的问题

Actionscript 3 tweenlite的问题,actionscript-3,gsap,Actionscript 3,Gsap,我有点问题。 我有以下功能: private function elementsLoadedHandler(e:Event):void { elementContainer=new Sprite(); var currentItem:uint; for (var i:uint=0; i < numberItems; i++) { var eleme

我有点问题。 我有以下功能:

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();
        }
私有函数元素SloadedHandler(e:事件):无效
{
elementContainer=新精灵();
var currentItem:uint;
对于(变量i:uint=0;i=elementModel.elements.length)
{
currentItem==0;
}
}
movementTimer=新计时器(\u movementSpeed,0);
movementTimer.addEventListener(TimerEvent.TIMER,moveItems);
movementTimer.start();
布局();
}
这基本上是将数组中的元素放置在相邻的舞台上。现在我希望他们一起向右移动。我的做法如下:

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;
                }
            }
        }
私有函数moveItems(e:TimerEvent):无效
{
变量alphaVal:Number=.5;
movementTimer.delay+=25;
for(变量i:uint=0;i\u宽度)
{
elementsArr[i].x=0;
}
}
}
所以我将项目向右移动,然后检查最后一个项目是否在舞台之外,如果是,我将其位置重置为0,使其返回到左侧,这样我就有一个连续的项目向右移动循环。 问题是,我这样做的方式,每秒有11个tweens被执行,这使它变得滞后。我想把这些东西放在一个容器里,然后用镊子拧容器,但我似乎没有得到一个很好的连续流动。有人知道如何解决这个问题吗


另外,在第一个函数中,您可以看到我正在执行for循环。
numberItems
变量表示11,但
elementModel.elements
中的项目数量只有6个,因此对于其他5个元素,我只需再次从数组中选取前5个项目。问题是,当我跟踪这些项目时,它会给我0。如何在不覆盖以前版本的阵列的情况下多次从阵列中获取项目?

不需要使用tween lite。在moveItems函数中,只需将每个项移动一点(例如,elemtsArr[i].x+=5),如果elementsArr[i].x>\u宽度,则将其替换为0

像这样的方法应该会奏效:

function moveItems( e:TimerEvent ):void
{
    for (var i:int = 0; i < elemntsArr.length; i++)
    {
        elementsArr[i].x += 5;
        if (elementsArr[i].x > _width)
            elementsArr[i].x = 0;
    }
}
函数移动项(e:TimerEvent):无效
{
for(变量i:int=0;i\u宽度)
elementsArr[i].x=0;
}
}