Hi, need help regarding getting children from MovieClip, first I get movieclip from swf library and then trying to loop through to check children (like AS3)
bg = Assets.getMovieClip ("ItemsLibrary:dynamicClass.TopView");
addChild(bg);
var bgChild:Dynamic;
for (bgChild in bg){
var nameStr:String = bgChild.name;
if (nameStr.indexOf('sel_') != -1){
bgChild.addEventListener(MouseEvent.CLICK, onBuildingClickHandler);
}
}
I also tried with reflect but no luck
var bgNumChildren:Int = Reflect.field (bg, "numChildren");
trace(bgNumChildren+' from asset leng');
var i:Int = 0;
for (i in 0...bgNumChildren){
var bgChild:DisplayObject = bg.getChildAt(i);
if (Std.is(bgChild, DisplayObject)){
var name:String = Reflect.field (bgChild, "name");
trace(name);
if (name.indexOf('sel_') != -1){
bgChild.addEventListener(MouseEvent.CLICK, onBuildingClickHandler);
}
}
}
bg = Assets.getMovieClip ("ItemsLibrary:dynamicClass.TopView");
addChild(bg);
var bgNumChildren:Int = bg.numChildren;
var i:Int = 0;
for (i in 0...bgNumChildren){
var bgChild:DisplayObject = bg.getChildAt(i);
if (Std.is(bgChild, DisplayObject)){
var name:String = bgChild.name;
if (name.indexOf('sel_') != -1){
bgChild.addEventListener(MouseEvent.CLICK, onBuildingClickHandler);
}
}
}
bg = Assets.getMovieClip ("ItemsLibrary:dynamicClass.TopView");
addChild(bg);
var bgChild:DisplayObject;
for (i in 0...bg.numChildren){
bgChild = bg.getChildAt(i);
var nameStr:String = bgChild.name;
if (nameStr.indexOf('sel_') != -1){
bgChild.addEventListener(MouseEvent.CLICK, onBuildingClickHandler);
}
}
Your current code should work, but you don’t need to initialize i outside of the loop, and you don’t need to use Std.is to check if each child is a DisplayObject, since they definitely are