将StageClips从Stage添加到数组并播放它们

时间:2014-12-18 06:23:08

标签: arrays actionscript-3 flash compiler-errors movieclip

我已使用;

将我的舞台中的特定MovieClip添加到数组中
var ItemArray:Array = new Array();


function loadItems():Array //loads/returns items into an array
{

    for(var i:int = 0; i<numChildren; i++) //loop number of children on stage
    {

        if(getChildAt(i).name.substr(0,4) == "item") //if child is an item

            {
            ItemArray[getChildAt(i).name.substr(5)] = getChildAt(i); //Add to Items:array as instance numbered
            }
    }

return ItemArray;    
}

然后,当我点击一个按钮时,它会触发此功能:

function playNextItem():void
{
        if(CurrentItem < ItemArray.length)
    {
        play.ItemArray[CurrentItem];
        CurrentItem++;
    }

}

播放数组的第一个moviclip并向计数器添加+1,以便下次按下按钮时它会播放数组中的下一个Movieclip。

但是我收到了这个错误:

/Users/nathanrichman/Desktop/Presso Idea/Presentation.as, Line 50, Column 7 1119: Access of possibly undefined property ItemArray through a reference with static type Function.

我环顾四周,似乎我正在创建所有错误的数组,它无法将其作为Movieclip读取。

如何将动画片段添加到数组并播放.array [number]?

1 个答案:

答案 0 :(得分:0)

一方面,play()是一个movieClip method,而不是相反!

正确的代码不是:

play.mc;

但:

mc.play();

另一方面,你可以这样做:

var ItemArray:Array = [];

for (var i:int = 0; i < numChildren; i++)
{
    ItemArray[i] = MovieClip(getChildAt(i));
}

var CurrentItem:int = 0;

function playNextItem(e:MouseEvent):void 
{ 
    ItemArray[CurrentItem].play();
    CurrentItem++;
}
addEventListener(MouseEvent.MOUSE_UP, playNextItem);