Skip to main content
Inspiring
July 25, 2013
Answered

How to? extern XML to Datagrid updates dynamic textfield

  • July 25, 2013
  • 1 reply
  • 796 views

Hi I hope somebody can help me out on this.

I have a datagrid which is populated by an extern xml.

The number of items changes once in a while.

I have a date and a heading in the datagrid but on clicking I want the corresponding text of the item (which is also available in the XML) appear in the textfield.

I have seen examples of data from the the datagrid to appear again in the textfield but that is not what I want.

Any help is greatly appreciated.

Here is the code (The datagrid is working the update of the textfield is not):

--------------------

stop();

import flash.events.Event;

import flash.net.URLRequest;

import fl.data.DataProvider;

var agendaXML:XML;

var agendaXmlLoader: URLLoader = new URLLoader();

agendaXmlLoader.addEventListener(Event.COMPLETE, agendaLoaded);

agendaXmlLoader.load(new URLRequest("http://dbmini.local/AZC/createXMLfromAZC.php"));

function agendaLoaded(evt:Event):void

{

          agendaXML = new XML(agendaXmlLoader.data);

 

          var componentProvider:DataProvider = new DataProvider();

          for (var i:uint = 0; i < agendaXML.verhaal.length(); i++)

          {

                    componentProvider.addItem({Datum:agendaXML.verhaal.datum, Kop:agendaXML.verhaal.kop});

                    agenda.addEventListener(Event.CHANGE, agendaItemKlik);

                    function agendaItemKlik(event:Event):void

                    {

                              tekstVlak.text = event.target.selectedItem.agendaXML.verhaal.tekst;

                    }

          }

          agenda.dataProvider = componentProvider;

}

This topic has been closed for replies.
Correct answer kglad

never nest named functions. try:

import flash.events.Event;

import flash.net.URLRequest;

import fl.data.DataProvider;

var agendaXML:XML;

var agendaXmlLoader: URLLoader = new URLLoader();

agendaXmlLoader.addEventListener(Event.COMPLETE, agendaLoaded);

agendaXmlLoader.load(new URLRequest("http://dbmini.local/AZC/createXMLfromAZC.php"));

function agendaLoaded(evt:Event):void

{

          agendaXML = new XML(agendaXmlLoader.data);

          var componentProvider:DataProvider = new DataProvider();

          for (var i:uint = 0; i < agendaXML.verhaal.length(); i++)

          {

                    componentProvider.addItem({Datum:agendaXML.verhaal.datum , Kop:agendaXML.verhaal.kop});

          }

          agenda.dataProvider = componentProvider;

                    agenda.addEventListener(Event.CHANGE, agendaItemKlik);

}

function agendaItemKlik(event:Event):void

                    {

                              tekstVlak.text = agendaXML.verhaal[event.target.selectedIndex].tekst;

                    }

1 reply

kglad
Community Expert
kgladCommunity ExpertCorrect answer
Community Expert
July 25, 2013

never nest named functions. try:

import flash.events.Event;

import flash.net.URLRequest;

import fl.data.DataProvider;

var agendaXML:XML;

var agendaXmlLoader: URLLoader = new URLLoader();

agendaXmlLoader.addEventListener(Event.COMPLETE, agendaLoaded);

agendaXmlLoader.load(new URLRequest("http://dbmini.local/AZC/createXMLfromAZC.php"));

function agendaLoaded(evt:Event):void

{

          agendaXML = new XML(agendaXmlLoader.data);

          var componentProvider:DataProvider = new DataProvider();

          for (var i:uint = 0; i < agendaXML.verhaal.length(); i++)

          {

                    componentProvider.addItem({Datum:agendaXML.verhaal.datum , Kop:agendaXML.verhaal.kop});

          }

          agenda.dataProvider = componentProvider;

                    agenda.addEventListener(Event.CHANGE, agendaItemKlik);

}

function agendaItemKlik(event:Event):void

                    {

                              tekstVlak.text = agendaXML.verhaal[event.target.selectedIndex].tekst;

                    }

Inspiring
July 25, 2013

Thanks a lot.

It now works!

kglad
Community Expert
Community Expert
July 25, 2013

you're welcome.