将舞台 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。
很简单。
我正在创建一个程序,我将多个 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。
很简单。