Skip to main content
Participant
October 29, 2014
Answered

Creating and Accesing Buttons Using XML

  • October 29, 2014
  • 1 reply
  • 384 views

What I am looking for to generate button from <btn> and onclick btn its child elemnets <event> should display in container movie clip

I have dateData MC  to display no of buttons

and eventMC to display no of events

and container  movieclip in libaray inside that have back button

when click on any Button its generating on 1 event element from first <btn>

here is the code I just trying to do it

but not geting any logic

here is XML

<DATA>

<btn date="12 june">

<event tm="9 am"></event>

<event tm="1 pm"></event>

<event tm="4 pm"></event>

</btn>

<btn date="13 june">

<event tm="1 pm"></event>

<event tm="4 pm"></event>

</btn>

<btn date="14 june">

<event tm="4 pm"></event>

</btn>

</DATA>

and this is code I am trying

import flash.net.URLLoader;

import flash.net.URLRequest;

import flash.display.*;

import flash.text.*;

import flash.net.*;

import flash.events.*;

var dateXML:XML;

var xmlLoader:URLLoader = new URLLoader();

xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded);

xmlLoader.load(new URLRequest("tesXMl.xml"));

var dateBtn:Array = new Array();

var dateEvent:Array = new Array();

function xmlLoaded(evt:Event):void

{

    dateXML = new XML(xmlLoader.data);

    var dateLenght:int=(dateXML.btn.length());

    trace(dateLenght);

    for (var i=0; i< dateLenght; i++)

    {

        var m = new dateData();

        m.dText.text = dateXML.btn. @ date;

        dateBtn.push( m );

        addChild(dateBtn);

        dateBtn.x = 20;

        dateBtn.y = 50 * i;

        dateBtn.buttonMode = true;

        dateBtn.addEventListener(MouseEvent.CLICK, eventAdd);

        var eventLength:int =(dateXML.btn.event.length());

        for (var j=0; j< eventLength; j++)

        {

            var ev = new eventMC();

            ev.eText.text = dateXML.btn.event. @ tm;

            dateEvent.push(ev);

        }

        function eventAdd():void

        {

           

            var d = new container();

            addChild(d);

            d.x=140;

           

           

            for (var i=0; i< eventLength; i++)

            {

                d.addChild(dateEvent);

                dateEvent.y = 50 * i;

                d.back.addEventListener(MouseEvent.CLICK, conBack);

               

               

            }

           

            function conBack():void

            {

             removeChild(d);

            }

        }

       

    }

}

This topic has been closed for replies.
Correct answer kglad

never nest named functions.


after unnesting them, do not make eventLength etc local (to xmlLoaded) if you want to use it elsewhere (like in eventAdd).

1 reply

kglad
Community Expert
kgladCommunity ExpertCorrect answer
Community Expert
October 29, 2014

never nest named functions.


after unnesting them, do not make eventLength etc local (to xmlLoaded) if you want to use it elsewhere (like in eventAdd).