我创建了一个程序,我在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;
欢迎帮助,
干杯,
丹
答案 0 :(得分:0)
感谢您的帮助,
我没有应用库链接。所有项目的基类仍设置为MovieClip。
所以我去了项目属性...&gt;导出为ActionScript。
刚刚将基类更改为我的'Item'类。
轻松。