我有點問題。 我有以下功能: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.我怎麼能從一個數組中的項目多次而不覆蓋它的以前的版本?