as3 ARRAY SHIFT - 数组现在结束了什么?

时间:2013-05-13 19:00:11

标签: arrays actionscript-3 shift

我在屏幕上打开和关闭字母表。我正在使用数组SHIFT执行此操作以转到下一个字母。当我到达数组的最后一个元素时,字母Z,我怎么能开始?

另一个例子是如果你有一个图片数组,在你完成查看最后一个图片后,代码会再次开始你的视频,然后你开始从那里开始查看。

这是我需要将移位设置回零的代码。

var Letter:MovieClip;
function fl_MouseClickHandler_2(event:MouseEvent):void
{
    if(Letter) 
    {
        var gone:MovieClip = Letter as MovieClip;
        TweenMax.to(Letter, 1, { x:0 ,  ease:Back.easeOut, onComplete:removeLetter});
        function removeLetter(){

            removeChild(gone);
        }

    }
    if(Alphabet.length!=0)
    { 

        Letter = new alphabetLetter();
        addChild(Letter);
        /// THIS KEY CODE LINE THAT USES SHIFT

        Letter.letter.text = Alphabet.shift();  

        TweenMax.fromTo(Letter, 2, {x:stage.stageWidth}, {x:stage.stageWidth/2-Letter.width, ease:Expo.easeOut});
    }
    else
    {
           //// TRIED THIS BUT DOES NOT WORK            
          Alphabet.unshift(27);
    }

    /// WHAT CODE DO I USE HERE TO SET THE ARRAY BACK TO THE BEGINNING?



    if(Alphabet.length==0)
    { 
           Alphabet.shift = 0; /// ???
    }

1 个答案:

答案 0 :(得分:0)

shift()从数组中删除一个元素,这样你就无法取回它,除非你把它保留在其他地方,以便在你再次需要它时将它放回到数组中。

你最好只使用索引变量来查找数组中的正确元素而不实际修改它:如果你的索引值大于26,再从0开始。

或者,使用push()在移位后立即将字母放回数组的末尾。这样你的数组永远不会变空。