получить назначенные XML свойства MC

Я создал количество MC на основе моего списка XML, и каждому присвоен атрибут/идентификатор, указанный в XML. Теперь я пытаюсь отследить родителя назначенных свойств 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");
    }

person Hwang    schedule 15.10.2009    source источник


Ответы (2)


Вы меняете один и тот же объект (а именно круги) на каждой итерации цикла for each. Возможно, ты захочешь изменить это.

event.target.name будет отслеживать имя объекта кругов. Чтобы получить имя родителя, trace(event.target.parent.name).

Хорошей практикой является преобразование event.target в MovieClip и сохранение его в локальной переменной. Таким образом, вы получите подсказку кода (по крайней мере, в flex builder) и проверку типов компилятором.

person Amarghosh    schedule 15.10.2009

вам нужно будет сделать цикл, который проходит через вашу иерархию XML и прикрепляет ваш новый мувиклип в нужном месте, в данный момент вы добавляете круги на сцену напрямую, а не в иерархическом порядке XML. вам также нужно сделать вызов circles = new Class(), чтобы создать новый объект

person longstaff    schedule 15.10.2009