获取XML分配的MC属性

时间:2009-10-15 09:27:19

标签: xml actionscript-3

我已经根据我的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");
    }

2 个答案:

答案 0 :(得分:0)

您正在for each循环的每次迭代中更改相同的对象(即圆圈)。你可能想改变它。

event.target.name将跟踪圈子对象的名称。获取其父母的姓名trace(event.target.parent.name)

良好做法是将event.target转换为MovieClip并将其存储在本地变量中。这样,您将获得代码提示(至少在flex构建器中)和编译器的类型检查。

答案 1 :(得分:0)

你必须制作一个循环,通过你的XML雇佣制并将你的新动画片段附加到正确的位置,此时你将圈子直接添加到舞台而不是XML的层次顺序。 你还需要做一个circle = new Class()调用来创建一个新对象