我已经根据我的XMLlist创建了一定数量的MC,并且每个都使用XML中指定的属性/ ID进行分配。我现在正试图追溯指定的MC属性的父级,我该怎么做?
XML:
<MEMBER NAME="Todd" ID="001">
<MEMBER NAME="Popia" ID="003">
</MEMBER>
<MEMBER NAME="Popia2" ID="004">
<MEMBER NAME="Awesome" ID="005">
</MEMBER>
</MEMBER>
</MEMBER>
这里是Actionscript
private function Members():void {
//trace(myXML.children().attribute("ID"));
xmlList=myXML.children();
for each (myXML in xmlList) {
circles.x=Math.floor(Math.random()*100)-50;
circles.y=Math.floor(Math.random()*100)-50;
circles.buttonMode=true;
circles.addEventListener(MouseEvent.CLICK, clickTarget);
addChild(circles);
circles.name=myXML.attribute("ID");
}
}
private function clickTarget(event:MouseEvent):void {
//trace(event.target.name);
//trace(event.target.parent().attribute("ID"));
//trying to trace previous assgined att MC position
trace("click");
}
答案 0 :(得分:0)
您正在for each
循环的每次迭代中更改相同的对象(即圆圈)。你可能想改变它。
event.target.name
将跟踪圈子对象的名称。获取其父母的姓名trace(event.target.parent.name)
。
良好做法是将event.target
转换为MovieClip
并将其存储在本地变量中。这样,您将获得代码提示(至少在flex构建器中)和编译器的类型检查。
答案 1 :(得分:0)
你必须制作一个循环,通过你的XML雇佣制并将你的新动画片段附加到正确的位置,此时你将圈子直接添加到舞台而不是XML的层次顺序。 你还需要做一个circle = new Class()调用来创建一个新对象