将舞台 child 影片剪辑投射到自定义 class 扩展影片剪辑 AS3

Cast a stage child movieclip into a custom class extends movieclip AS3

我正在创建一个程序,我将多个 Movieclips 添加到 Flash 中的舞台,实例将它们命名为每帧 'item_#',并在运行时将这些 children 拉入一个数组并动态投射将它们添加到名为 'Item' 的自定义 class 中,它扩展了 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;}

问题是我似乎无法正确地转换它们,因为我此时得到一个空值:

mc = getChildAt(i) as Item;

当我只是将项目作为 MoviClip 拉动并且不需要投射它们时,它起作用了:

mc = getChildAt(i) as MovieClip;

欢迎帮助,

干杯,

感谢您的帮助,

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

所以我转到项目属性...>ActionScript 导出。

并且刚刚将基数 class 更改为我的 'Item' class。

很简单。