将舞台子动画片段转换为自定义类扩展movieclip AS3

时间:2015-05-20 04:59:33

标签: arrays actionscript-3 flash casting movieclip

我创建了一个程序,我在Flash中为舞台添加了多个Movieclip,实例将它们命名为' item _#'每帧,并在运行时我将这些子项拉入一个数组,并动态地将它们转换为一个名为' Item'它扩展了MovieClip。

function loadUpItems(): Array //loads items into ItemArray{
var ItemArray:Array = new Array(); //Dynamically holds the items_# for each scene

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
    {
        trace("Item Child is: " + getChildAt(i));
        var mc:Item = new Item();       
        mc = getChildAt(i) as Item;
        mc.setItemX(getChildAt(i).x);
        mc.setItemY(getChildAt(i).y);
        mc.setItemNumber(Number(getChildAt(i).name.substr(5)));
        ItemArray[getChildAt(i).name.substr(5)] = mc; //Add to Items:array as instance numbered
        ItemArray[getChildAt(i).name.substr(5)].stop();
        trace("Loaded Item : " + ItemArray[getChildAt(i).name.substr(5)].itemName() + " : Frame : " + CurrentFrame);
    }
}
trace("ItemArray : " + ItemArray);
return ItemArray;}

问题是我似乎无法正确地施放它们,因为我得到了一个null:

mc = getChildAt(i) as Item;

当我把物品拉成MoviClips并且不需要施放它时,它起作用了:

mc = getChildAt(i) as MovieClip;

欢迎帮助,

干杯,

1 个答案:

答案 0 :(得分:0)

感谢您的帮助,

我没有应用库链接。所有项目的基类仍设置为MovieClip。

所以我去了项目属性...&gt;导出为ActionScript。

刚刚将基类更改为我的'Item'类。

轻松。