Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-09-2004, 21:56   #1 (permalink)
Zeus
Gast
 
Beiträge: n/a
[Referenzierung] Verständnisfrage

Hi,

ich lade ein XML-File ordentlich in meinen Flashfilm und ziehe mir die Attributwerte der Knoten innerhalb einer Schleife in Variablen rein. Verwendet werden:

- dsLangMc -> Name des MC's (Instanz)
- dsLangField -> Name des Textfeldes (Instanz)
- dsLangText -> Wert (String), der zugewiesen werden soll.

Auf diese Weise wird die Zielsprache für alle Textelemente innerhalb meiner Anwendung zugewiesen.

-> _root[dsLangMc][dsLangField].text = dsLangText;

Resultat sind leere Textfelder.

-> trace(_root[dsLangMc][dsLangField]);

liefert korrekte Referenzierung: "_root.dsMenu.dsMenu1"

-> trace(_root[dsLangMc][dsLangField].text = dsLangText;

liefert "undefined" zurück.

Kann mir da jemand auf die Sprünge helfen???

Danke im voraus!

Z
  Mit Zitat antworten
Alt 06-09-2004, 22:01   #2 (permalink)
Neuer User
 
Benutzerbild von :: RK ::
 
Registriert seit: Jan 2002
Ort: Umgebung Stuttgart
Beiträge: 5.412
hi,

wo liegt denn die Variable "dsLangText", bzw. stimmt der Pfad dahin ???
vllt etwas AS zeigen.


__________________
Das Glück im Leben hängt von den guten Gedanken ab, die man hat.

Easing_Equations / Flash Kontaktformular / FlashPlugin W3C konform / Nützliche Beiträge zu FAQs
:: RK :: ist offline   Mit Zitat antworten
Alt 06-09-2004, 23:32   #3 (permalink)
nerdig working
 
Benutzerbild von michael
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 5.832
kann eigentlich nur an dem zugewiesenen wert liegen oder dem zeitpunkt der zuweisung.
referenzierung sieht soweit ok aus, wenn man es so nachspielt ist auch alles gut.
ActionScript:
  1. dsLangMc = "dsMenu"
  2. dsLangField ="dsMenu1"
  3. dsLangText = "hallo"
  4.  
  5. _root[dsLangMc][dsLangField].text = dsLangText;
  6. trace(_root[dsLangMc][dsLangField]); //_level0.dsMenu.dsMenu1
  7. _root[dsLangMc][dsLangField].text = dsLangText;
  8. trace(_root[dsLangMc][dsLangField].text) //hallo
  9.  
michael ist offline   Mit Zitat antworten
Alt 06-09-2004, 23:38   #4 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Vielleicht eine Objektreferenz setzen?
ActionScript:
  1. _root[dsLangMc][dsLangField] = new Object;
  2. var pfad = _root[dsLangMc][dsLangField] = _root.dsMenu.dsMenu1;
  3. dsLangText = "meinText";
  4.  
  5. pfad.text = dsLangText;
Funzt bei mir...
  Mit Zitat antworten
Alt 07-09-2004, 08:10   #5 (permalink)
Zeus
Gast
 
Beiträge: n/a
Danke schon mal so weit...

XML laden:
PHP-Code:
dsLang = new XML();
dsLang.ignoreWhite true;
dsLang.load("lang.german.xml");
dsLang.onLoad = function(status) {
    if (
status && this.loaded) {
        
anzahl dsLang.firstChild.childNodes.length;
        for (
0anzahli++) {
            
dsLangName dsLang.firstChild.childNodes[i].nodeName;
            
dsLangMc dsLang.firstChild.childNodes[i].attributes.mc;
            
dsLangTxt dsLang.firstChild.childNodes[i].attributes.val;
            
trace(_root[dsLangMc][dsLangName]+" -> "+dsLangTxt);
            
//trace(_root[dsLangMc][dsLangName].text = dsLangText);
        
}
    }
}; 
Ausgabe:
Code:
_level0.dsMenu.dsMenuHead1 -> MENU
_level0.dsMenu.dsMenuHead2 -> MENU
_level0.dsMenu.dsMenuItem1 -> NEUE ETAGE
_level0.dsMenu.dsMenuItem2 -> BEARBEITE ETAGE
_level0.dsMenu.dsMenuItem3 -> OBJEKTDATENBANK
_level0.dsMenu.dsMenuItem4 -> VEROEFFENTLICHEN
_level0.dsWerkzeug.dsWerkzeugHead1 -> WERKZEUGE
_level0.dsWerkzeug.dsWerkzeugHead2 -> WERKZEUGE
_level0.dsEtageNeu.dsEtageNeuHead1 -> NEUE ETAGE ANLEGEN - GRUNDRISS AUSWAEHLEN
_level0.dsEtageNeu.dsEtageNeuHead2 -> NEUE ETAGE ANLEGEN - GRUNDRISS AUSWAEHLEN
 -> BITTE WAEHLEN SIE AUS DEN VORGEGEBENEN VORLAGEN AUS
 -> KDGJLKDGL DJ
XML:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<lang>
    <dsMenuHead1 mc="dsMenu" val="MENU" />
    <dsMenuHead2 mc="dsMenu" val="MENU" />
    <dsMenuItem1 mc="dsMenu" val="NEUE ETAGE" />
    <dsMenuItem2 mc="dsMenu" val="BEARBEITE ETAGE" />
    <dsMenuItem3 mc="dsMenu" val="OBJEKTDATENBANK" />
    <dsMenuItem4 mc="dsMenu" val="VEROEFFENTLICHEN" />
    <dsWerkzeugHead1 mc="dsWerkzeug" val="WERKZEUGE" />
    <dsWerkzeugHead2 mc="dsWerkzeug" val="WERKZEUGE" />
    <dsEtageNeuHead1 mc="dsEtageNeu" val="NEUE ETAGE ANLEGEN - GRUNDRISS AUSWAEHLEN" />
    <dsEtageNeuHead2 mc="dsEtageNeu" val="NEUE ETAGE ANLEGEN - GRUNDRISS AUSWAEHLEN" />
    <dsEtageNeuAAA mc="dsEtageNeu" val="BITTE WAEHLEN SIE AUS DEN VORGEGEBENEN VORLAGEN AUS" />
    <testEintrag mc="ddd" val="KDGJLKDGL DJ" />
</lang>
Nach 'dsEtageNeuHead2' steigt der mir aus, da kann ich drehen und wenden was ich will. Selbst ein Timeout nach jedem Schleifendurchlauf bringt nix.
  Mit Zitat antworten
Alt 07-09-2004, 08:15   #6 (permalink)
Zeus
Gast
 
Beiträge: n/a
Und schwupps - kam ich auf den Fehler. Manchmal ist es echt wie die Nadel im Heuhaufen... Im MC dsEtageNeu hatte das Textfeld einen falschen Instanznamen (dsEtageNeuText anstatt dsEtageNeuTxt). Ergo ging da garnix.

Jetzt flutscht's!

DANKE!
  Mit Zitat antworten
Alt 07-09-2004, 12:17   #7 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Ich sag es ja immer: manchmal sitzt der Bug vor dem Gerät ...
  Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 06:08 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele