Avatar billede mads.f Nybegynder
01. december 2003 - 09:07 Der er 5 kommentarer og
1 løsning

Dynamiske textfields skal læse fra XML i Flash MX

Jeg skal have nogen dynamiske tekstfelter i min movie, som skal læse fra en XML-fil.

Det jeg vil gøre at loade XML'en, og derefter tilknytte div. attributter til nogen tekstfelter.


Min XML (FlashContent.xml):

<location>
<afd1 name="Firma Århus A/S" adress="Hovedvejen 100, Århus" phone="80 00 00 00" />
<afd2 name="Firma Odense A/S" adress="Hovedvejen 200, Odense" phone="60 00 00 00" />
<afd3 name="Firma København A/S" adress="Hovedvejen 300, København" phone="30 00 00 00" />
</location>

Hver attribut skal bindes til et tekstfelt, som (for overblikkets skyld) skal hedde det samme som attributterne i XML'en - bare med flash_ foran. Fx flash_name
Jeg ved ikke lige om det skal være som en variabel eller instance name?

Der er 100 point til den første som kommer med en fungerende ActionScript kode.

Og ingen henvisninger til en tutorial, tak.
Avatar billede mat Nybegynder
01. december 2003 - 12:22 #1
Tekstfelterne skal have instancenavne:

xml_obj = new XML();
xml_obj.ignoreWhite = true;
xml_obj.load("flash_content.xml");

xml_obj.onLoad = function(s) {
    if (s) {
        trace("xml loaded");
        flash_name.text = this.firstChild.childNodes[0].attributes.name;
        flash_adress.text = this.firstChild.childNodes[0].attributes.adress;
        flash_phone.text = this.firstChild.childNodes[0].attributes.phone;
       
        flash_name2.text = this.firstChild.childNodes[1].attributes.name;
        flash_adress2.text = this.firstChild.childNodes[1].attributes.adress;
        flash_phone2.text = this.firstChild.childNodes[1].attributes.phone;
       
        // osv osv
    }
    else {
        trace("xml NOT loaded");
    }
}


...nok ikke optimalt, men det burde kunne få dig videre?

mvh mat
Avatar billede mads.f Nybegynder
01. december 2003 - 13:05 #2
Perfekt :)

Der er bare lige en del som jeg ikke helt forstår...

xml_obj.onLoad = function(s) {
    if (s) {
        trace("xml loaded");

Kan du forfælle lige om hvad det gør osv?

Og hvorfor er koden ikke optimal?
Avatar billede mat Nybegynder
01. december 2003 - 16:35 #3
det tjekker bare om kaldet efter xml´en er succesfuldt - Jeg skiver "nok ikke optimalt" fordi jeg ikke er nogen xml-parsing ekspert, så jeg parser efter bedste evne og uden specielle hensyn, det er bare det jeg mener :)
Avatar billede mads.f Nybegynder
01. december 2003 - 18:14 #4
Arhh okay. Men tak for din hjælp.

Lige en sidste ting...
Jeg har spredt mine tekstfelter ud over nogle frames, og nu opdagede jeg at jeg var nød til at loade xml'en igen for hver frame jeg skulle bruge den.... Er det ike muligt at undgå det?
Avatar billede mat Nybegynder
01. december 2003 - 18:33 #5
Nej det tror jeg ikke det er, men du er nødt til assigne tekstfelternes text-property når de instancieres (dvs i den frame de ligger). Så henter du bare dataen i dit xml objekt f.eks:

flash_name.text = xml_obj.firstChild.childNodes[0].attributes.name;

Vil jeg tro :)

mvh mat
Avatar billede mat Nybegynder
01. december 2003 - 18:40 #6
hov

"Nej det tror jeg ikke det er" - betyder: Nej, det er ikke nødvendigt at loade den igen. Så svaret på dit spørgsmål må være:

Jo, det er muligt at undgå

:)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester