Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-01-2004, 13:33   #1 (permalink)
kenntEinenDerFlashKann
 
Benutzerbild von Aule
 
Registriert seit: Mar 2002
Ort: sauerland
Beiträge: 220
Globale Variablen aus .txt-Variablen erstellen - wie?

hi,

ich habe eine Textdatei, wo drinsteht:
anz=10

diese Variable lese ich aus mit:
ActionScript:
  1. loadVariables("text.txt","");

Wie kann ich jetzt aus dieser ausgelesenen Variable eine globale Variable machen?

komischerweise kann ich in einer if-Anweisung auf diese Variable zugreifen:
ActionScript:
  1. if(bildnum<_root.anz) {
  2.    tue dies und das
  3. }

aber wenn ich zum Beispiel im ersten Frame nach dem Auslesen der externen Variable schreibe
ActionScript:
  1. trace(_root.anz)
,
dann traced Flash mir munter zu: "undefined"

Anscheinend hab ich irgendwo 'n Denkfehler. Aber wo?
__________________
...life is just a workaround...
Aule ist offline   Mit Zitat antworten
Alt 06-01-2004, 13:50   #2 (permalink)
Level up
 
Benutzerbild von Alois
 
Registriert seit: Jun 2001
Ort: Bocholt
Beiträge: 4.155
tja ,
weil die variable noch nicht da ist, der Ladevorgang dauert natürlich etwas, so daß die variable flash frühestens erst im nächsten frame zur Verfügung steht...ich könnte Dir jetzt erklären wie man das abfangen kann aber am Ende heisst es eh, benutze das loadVars-Objekt:
ActionScript:
  1. myLoader=new loadVars();
  2. myLoader.onLoad=function(success){
  3. if(success){
  4. _root.anz=this.anz;
  5. trace(_root.anz);
  6. }else{
  7. trace("Datei nicht gefunden");
  8. }
  9. }
  10. myLoader.load("text.txt");
kurze Erklärungen:
zu myLoader.onLoad:
Dabei handelt es sich um einen sogenannten handler, diese Funktion wird immer aufgerufen, wenn auf das LoadVars-Objekt Variablen geladen werden
zu success:
darauf könntest Du auch verzichten, also:
ActionScript:
  1. myLoader.onLoad=function(){
  2. _root.anz=this.anz;
  3. trace(_root.anz);
  4. }
...ginge auch, anders ist es aber praktischer, wenn der Ladevorgang ordnungsgemäss abläuft wird die variable success gesetzt, wenn nicht (Datei nicht da,.. in anderem Verzeichnis, ..defekt, ...) eben nicht

Gruß

Alois
__________________
-Spuckt mir auf den Stuhl, ich will im Grünen sitzen-
Alois ist offline   Mit Zitat antworten
Alt 06-01-2004, 13:50   #3 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi
ActionScript:
  1. lv = new LoadVars();
  2. lv.onLoad = function (success){
  3.             if (success){
  4.         _global.anz=this.anz
  5.            
  6.             }
  7. }
  8. lv.load("text.txt")
__________________
gruß Harry
HAY ist offline   Mit Zitat antworten
Alt 06-01-2004, 14:59   #4 (permalink)
kenntEinenDerFlashKann
 
Benutzerbild von Aule
 
Registriert seit: Mar 2002
Ort: sauerland
Beiträge: 220
ich denke, eure antworten gehen denselben weg.
ich habs ausprobiert. Problem:

solange trace innerhalb der function steht, gibt er mir die geladene variable aus.

sobald ich aber in einem anderm frame
trace(_global.anz) oder trace(_root.anz)
schreibe, kommt wieder das berühmte "undefined".

Das heisst doch, das die variable doch keine globale variable ist, oder?
Oder wie greift man auf globale variablen zu?

kann man sich da mal irgendwo 'n bißchen reinlesen?

gruß,
Aule
__________________
...life is just a workaround...
Aule ist offline   Mit Zitat antworten
Alt 06-01-2004, 15:11   #5 (permalink)
Level up
 
Benutzerbild von Alois
 
Registriert seit: Jun 2001
Ort: Bocholt
Beiträge: 4.155
da kann man erklären was man will, manchmal kommt nix an...
__________________
-Spuckt mir auf den Stuhl, ich will im Grünen sitzen-
Alois ist offline   Mit Zitat antworten
Alt 06-01-2004, 15:12   #6 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi
wahrscheilich fragst du die variable ab. die noch nicht fertig geladen ist.
FRAME1
ActionScript:
  1. lv = new LoadVars();
  2. lv.onLoad = function (success){
  3.         if (success){
  4.                 _global.anz=this.anz
  5.              gotoAndStop(2)
  6.                
  7.         }
  8. }
  9. lv.load("text.txt")
  10. stop()
FRAME2
ActionScript:
  1. trace(_global.anz)
__________________
gruß Harry
HAY ist offline   Mit Zitat antworten
Alt 07-01-2004, 10:04   #7 (permalink)
kenntEinenDerFlashKann
 
Benutzerbild von Aule
 
Registriert seit: Mar 2002
Ort: sauerland
Beiträge: 220
@alois: sorry für meine begriffsstutzigkeit...

Also ich hab jetzt im 1. Frame stehen:

ActionScript:
  1. myLoader=new loadVars();
  2. myLoader.onLoad=function(){       
  3.     _global.anz=this.anz;
  4. }
  5. myLoader.load("anz.txt");

und im 2. Frame steht unter anderem
ActionScript:
  1. trace(_global.anz);

gleiches steht auch in der ersten verschachtelten Ebene in 12 Clips auf dem 2. Hauptframe.

Ergebnis: 13x undefined...


Irgendwie hab i doa n hoaken im brain

Hier zum Download (169kb) die .fla mit 3 Bildern, 3 Thumbs und der anz.txt, vielleicht kann sich ja mal jemand den schlamassel anschauen...

gruß aule
__________________
...life is just a workaround...
Aule ist offline   Mit Zitat antworten
Alt 07-01-2004, 10:22   #8 (permalink)
Level up
 
Benutzerbild von Alois
 
Registriert seit: Jun 2001
Ort: Bocholt
Beiträge: 4.155
Zitat:
Geschrieben von HAY
hi
...
ActionScript:
  1. ...
  2. stop()//<<<<nicht vergessen!!! ...warum steht hier schon zweimal drin!!!
  3.  
...
__________________
-Spuckt mir auf den Stuhl, ich will im Grünen sitzen-
Alois ist offline   Mit Zitat antworten
Alt 07-01-2004, 10:40   #9 (permalink)
kenntEinenDerFlashKann
 
Benutzerbild von Aule
 
Registriert seit: Mar 2002
Ort: sauerland
Beiträge: 220
Aah, jetzt ja... jetzt kommen wir der Sache schon näher...
Jetzt bloß nicht die Nerven verlieren, Leute. Ich habs bald...

Habt Ihr eigentlich n guten Buchtipp? Es gibt so viel Bücher über Actionscript. Aber entweder ritzen die nur soon bißchen an der Oberfläche, oder sie sind so kompliziert, dass ich nicht mehr durchblicke.

Trotzdem ersma danke!

gruß,
Aule
__________________
...life is just a workaround...
Aule ist offline   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 17:03 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele