| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Jan 2003 Ort: Hasendorf bei Bremen
Beiträge: 81
|
Hallo Leute wer kann helfen? (ich checks nich) Mein Problem: Ich lade mir mit dem Script aus dem Tut von agedoubleju Variable aus einer txt-Datei. Die bekomme ich auch geladen - ABER ich brauche die als globale Variable. Und das bekomme ich nicht hin! Mein Script: function geladen(erfolgreich) { if(erfolgreich) { //diese Variable bzw ihren Wert brauche ich global: RUfarbe trace("empfangene Variable: "+this.RUfarbe); //hier forme ich die Variable in eine globale Variable um:_root.RUlook _root.RUlook = this.RUfarbe; trace("umgeformte Variable: "+_root.RUlook); //Diese beiden werden mir per trace im Ausgabefenster angezeigt } else { trace("Fehler beim Laden"); } } this.RUv = new LoadVars();//Instanz erstellen this.RUv.onLoad = geladen;//Callback setzen this.RUv.load("StaatenFarben.txt",this.RUv,"POST") ;//und den Request starten //ABER hier wird mir diese globale Variable NICHT angezeigt!!! //und somit auch nirgends verwendet trace("umgeformte root Variable: "+_root.RUlook); Wie bekomme ich globale Variablen? auf die ich von überall zugreifen kann? Hoffentlich könnt Ihr mir helfen ich dreh hier gleich durch! |
| | |
| | #2 (permalink) |
| ChronoGuard Registriert seit: Mar 2002 Ort: Saarbrücken
Beiträge: 2.649
|
Am Rande: Damit man sich die Scripts vernünftig angucken kann, gibt es hier Script-Tags im Board. So viel Mühe kann man sich schon machen, wenn man hilfe will. Dein Problem: Das onLoad-Event ist nicht synchron. Es wird erst gefeuert, wenn der gewünschte externe Inhalt auch geladen ist. Das restliche Script läuft in der Zeit weiter. Dein trace liegt also zeitlich vor dem onLoad. Und dort existiert dein Variable noch nicht. Und das ist auch keine globale Variable. Globale Variablen sind sowieso in 99% der Fälle unsinnig.
__________________ we will stop enhancing the truth in 3, 2, ... |
| | |
| | #4 (permalink) |
| ChronoGuard Registriert seit: Mar 2002 Ort: Saarbrücken
Beiträge: 2.649
|
Ich weiß nicht, wie du zu der Ansicht mit dem Volldeppen kommst, aber ich oute hier niemanden. Schließlich stell ich mich bei Dingen, die ich nicht weiß, auch nicht immer schlau an und bin froh, wenn jemand hilft. Nach 65 Beiträgen deinerseits wollte ich dich aber mal darauf hinweisen, dass es hier Möglichkeiten gibt, Scripts lesbarer darzustellen. Und dann hab ich erklärt, was passiert, und in meinen Augen ist daraus ersichtlich, was "die Lösung" ist. Die Variable ist halt erst nach dem onLoad verfügbar. Alle Ereignisse, die diese Variable benötigen, dürfen also erst mit oder nach dem onLoad erfolgen. z.B. PHP-Code:
__________________ we will stop enhancing the truth in 3, 2, ... |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Jan 2003 Ort: Hasendorf bei Bremen
Beiträge: 81
|
Keine Angst, ich hatte Deine Antwort nicht als Angriff o.ä. empfunden - habe nur ein loses Mundwerk ![]() Und mir schon gedacht, dass Du davon ausgehst, ich wisse dann schon was zu tun ist. Nur leider bin ich so weit hinten, dass ich es sogar jetzt, wo Du mir dankenswerter Weise die Lösung ausformoliert präsentierst, ich es nicht raffe. Werde mal über Deine Lösung meditieren denn sie hat Teile in sich, die ich noch nie genutzt habe. (Wie Void z.B.)Und entschuldige bitte, falls Du Dich angegriffen gefühlt hast. Ich wollte Dir nix unterstellen! |
| | |
| | #6 (permalink) |
| ChronoGuard Registriert seit: Mar 2002 Ort: Saarbrücken
Beiträge: 2.649
|
Void heißt nur so viel wie "nichts" und zeigt an, dass die function nichts zurückgibt. Es ist in Flash grundsätzlich nicht nötig, Rückgabetypen zu deklarieren, aber empfehlenswert, um Lesbarkeit und Fehlermeldungen zu verbessern.
__________________ we will stop enhancing the truth in 3, 2, ... |
| | |
| | #7 (permalink) |
| Neuer User Registriert seit: Jan 2003 Ort: Hasendorf bei Bremen
Beiträge: 81
|
Danke für die Erklärung! ![]() Leider bekomme ich immer ne Fehlermeldung, in Deinem Script stimme was mit den geschwungenen Klammern nicht - kann den Fehler allerdings nicht finden. Mal was anderes: Grundsetzlich brauche ich über 100 Variablen, die die Erscheinung der Staaten auf einer interaktiven Weltkarte bestimmen sollen. (Der Kunde will jetzt selber Einfluss nehmen können.) Die Weltkarte ist ein Wenig verschachtelt aufgebaut, weshalb ich globale Variablen wollte, auf die ich von jedem MC (Staat) aus zugreifen kann. Also dachte ich mir, beim Laden werden alle Variablen geladen und die Staaten können sich dann entsprechend verhalten. Hättest Du dafür eine andere Lösung? Oder ist mein Ansatz eigentlich richtig? (nur noch fehlerhaft) Oder oder??? Ich bekomme hier gerade das große Zweifeln |
| | |
| | #8 (permalink) |
| ChronoGuard Registriert seit: Mar 2002 Ort: Saarbrücken
Beiträge: 2.649
|
Achso. Du wolltest ja AS1. Mein Script ist teilweise AS2-Syntax. Ist AS1 ne Pflichtanforderung? Heutzutage macht das doch nicht mehr viel Sinn, oder täusch ich mich da...? Liegen die einzelnen Staaten denn in unterschiedlichen Verhältnissen zu der root? Wenn nicht, kannst du auch relative Pfade nutzen. Oder wenigstens halt _root benutzen und nicht _global. Das ist genauso einfach von überall verfügbar und kann im Notfall mit _lockroot abgeschlossen werden. _global ist fast immer schlecht.
__________________ we will stop enhancing the truth in 3, 2, ... |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |