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();
        }
这基本上做的是将数组中的元素放在彼此相邻的舞台上。现在我希望他们一起向右移动。我这样做如下:
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.如何在不覆盖以前版本的情况下多次从数组中获取项目?     
已邀请:
您不需要为此使用补间精简版。你需要在moveItems函数中做的就是移动每个项目(例如elemtsArr [i] .x + = 5),如果elementsArr [i] .x> _width,则将其替换为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;
    }
}
    

要回复问题请先登录注册