Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-02-2004, 00:09   #1 (permalink)
Self-proclaimed Genius
 
Benutzerbild von genesys
 
Registriert seit: Jul 2002
Ort: schweiz
Beiträge: 282
Question Variabeln aus included as zu importierbares txt?

Ich habe ein (für euch sicher) kleines Problem.
Ich habe sämtliche Variabeln für ein flash in einer variables.as gespeichert, die ich beim kompilieren durch #include "variables.as" einlese.
Nun möchte ich aber diese Variabeln nicht mehr beim kompilieren einlesen sondern beim starten des SWF's von einer externen datei importieren.
Geht das irgendwie mit der *.as die ich schon habe?
ich hab mal das ganze versucht in ein txt umzuschreiben indem ich einfach vor alle variabeln ein & gemacht und alle anführungszeichen entfernt habe um es mit loadVariables("variables.txt",_root) zu importieren . . . mit den strings geht das auch aber mit den zahlen lässt sich nicht rechnen.
aus _root.zahl*2 wird dann einfach NAN
im txt steht &zahl=3

könnt ihr mir Helfen?
(am besten währe, wenn ihr mir sagen könnt, wie ich am einfachsten aus meiner *.as ein importierbares file machen kann...)
genesys ist offline   Mit Zitat antworten
Alt 11-02-2004, 09:14   #2 (permalink)
The Man Who Wasn't There
 
Benutzerbild von fraggle two
 
Registriert seit: Jul 2003
Ort: BÄRLIN
Beiträge: 1.156
Exclamation

hi,

wenn du actionscript mit include# einbindest wird es auch nur geladen wenn der befehl include# aufgerufen wird...

die *.as datei muß natürlich auch auf deinem server liegen.

also nicht ausschließlich beim kompilieren.

wenn du es mit ner textdatei machen willst mußt du die strings noch in zahlen umwandeln.

ActionScript:
  1. a = new LoadVars();
  2. a.load("zahlen.txt");
  3. a.onLoad = function() {
  4.     zahl=Number(a.zahl); //in Zahlen umwandeln
  5.     zahl2=Number(a.zahl2); //in Zahlen umwandeln
  6.     z =zahl+zahl2; //z enthält jetzt das ergebnis
  7. };
  8. stop();

in der textdatei sind die werte wie folgt formatiert:

&zahl=3&
&zahl2=5&

wenn du wie im beispiel mit dem LoadVars objekt arbeitest hast du zusätzlich noch bessere kontrollmöglichkeiten z.b. ob die variablen schon geladen sind oder nicht.

hoffe das hilft...

gruß
mike
__________________
Dot-Realities
Mike Broders
Berlin

ICQ:105925103

Dot-Realities v4.0 under construction!
fraggle two ist offline   Mit Zitat antworten
Alt 11-02-2004, 09:47   #3 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Stop! Berichtigung: Ein #include-AS wird beim Exportieren der swf fix "eingebacken", so als ob es in der fla direkt stünde. .as auf dem Server macht also keinen Sinn. (dem Irrtum bin ich nämlich auch mal aufgesessen...)

Prinzipiell sollte es schon so gehen, wie von Mike vorgeschlagen. Paar Unschönheiten sind aber drin :
ActionScript:
  1. var z;
  2. var a = new LoadVars();
  3. a.onLoad = function(OK) {
  4. if(OK) {
  5.         _root.z =Number(this.zahl) + Number(this.zahl2);
  6. } else {
  7. trace("Fehler beim Laden!");
  8. }
  9. };
  10. a.load("zahlen.txt");
  11. stop();
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)

Geändert von sonar (11-02-2004 um 09:49 Uhr)
sonar ist offline   Mit Zitat antworten
Alt 11-02-2004, 09:56   #4 (permalink)
The Man Who Wasn't There
 
Benutzerbild von fraggle two
 
Registriert seit: Jul 2003
Ort: BÄRLIN
Beiträge: 1.156
Thumbs up

ach echt???

... danke für die verbesserung...

gruß
mike
__________________
Dot-Realities
Mike Broders
Berlin

ICQ:105925103

Dot-Realities v4.0 under construction!
fraggle two ist offline   Mit Zitat antworten
Alt 11-02-2004, 11:55   #5 (permalink)
Self-proclaimed Genius
 
Benutzerbild von genesys
 
Registriert seit: Jul 2002
Ort: schweiz
Beiträge: 282
gibt es keine möglichkeit, alle variabeln aus dem textdokument, die nur ziffern enthalten, in Zahlen umzuwandeln?
also bei diesem beispiel muss ja jede veriabel, die eine Zahl enthält mit Number(zahl) umgewandelt werden . . . bei meinem flash ist aber noch nicht bekannt, welche variabeln integerzahlen und welche Strings enthalten . . .

Wie löse ich es am elegantesten, dass das flash am anfang beim laden des txt anhält und erst wieder wietermacht, wenn das txt ganz geladen ist??
genesys ist offline   Mit Zitat antworten
Alt 11-02-2004, 12:25   #6 (permalink)
The Man Who Wasn't There
 
Benutzerbild von fraggle two
 
Registriert seit: Jul 2003
Ort: BÄRLIN
Beiträge: 1.156
hi,

zu1.

irgendwie müssen die daten ja auch in die txt-dateien.
da kannst du ja zwei verschiedene txt-dateien anlegen.
in die eine kommen nur variablen die zahlen beinhalten und in die andere die variablen mit strings.

dann weißt du immer genau was für vars geladen werden.

zu2.

mit dem loadVars-objekt...

wie es in sonars script beschrieben ist werden die anweisungen die innerhalb der onLoad-function stehen erst ausgeführt wenn die variablen aus der txt-datei fertig geladen sind.
da könntest du ja auch irgend eine variable auf true setzen womit du dann arbeiten kannst (spiele den film weiter wenn variable true).

gruß
mike
__________________
Dot-Realities
Mike Broders
Berlin

ICQ:105925103

Dot-Realities v4.0 under construction!
fraggle two ist offline   Mit Zitat antworten
Alt 11-02-2004, 13:03   #7 (permalink)
Self-proclaimed Genius
 
Benutzerbild von genesys
 
Registriert seit: Jul 2002
Ort: schweiz
Beiträge: 282
ah super! Vielen Dank!
aber bevor ich das benutze würde ich das noch gerne komplett verstehen . . .

bei dem script von sonar:

mit var a= new LoadVars(); erstelle ich ein objekt namens a, das alle meine Variabeln enthält, richtig?

das nächste verstehe ich nicht ganz
das a.onLoad=function(OK) und dann das ganz in der geschweiften klammer. Ist das nur ein Beispiel, wie ich die zahlen ansprechen muss oder überprüft das, ob zwei beliebige variabeln schon geladen wurden und man mit ihnen rechnen kann?

und dann am schluss a.load("zahlen.txt");

wieso steht das am schluss bzw. erst nachdem oben mit den variabeln gerechnet wird??

da blick ich nicht ganz durch . . .

sorry dass ich so hartnäckig bin, aber ich möchte nicht einfach n script verwenden und mich dann freuen, dass es funktioniert, wenn ich überhaupt nicht durchblick wieso es das tut ^^
genesys ist offline   Mit Zitat antworten
Alt 11-02-2004, 13:08   #8 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
a ist in dem Fall eine Objektinstanz aus der LoadVars-Klasse, die das Handling und das Laden deiner externen Daten übernimmt.
Die LoadVars-Klasse bringt einen sog. callback-Handler "onLoad(success)" mit, mit der du eben ganz easy überprüfen kannst, ob das Laden geklappt hat. Diesem weisen wir eine Funktion zu - also was soll passieren, wenn die Daten geladen sind: Sie sollen zur weiteren Verarbeitung zur Verfügung stehen. Und die load-Aktion schreibt man am Schluss, damit der "Sicherheits-Check" mit onLoad eben auch greift beim Laden. Soweit so unklar oder?
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist offline   Mit Zitat antworten
Alt 11-02-2004, 13:12   #9 (permalink)
nky
Bontempi Punk
 
Benutzerbild von nky
 
Registriert seit: Dec 2001
Ort: Dtld/Pfalz
Beiträge: 4.185
loadvars findest auch nochmal hier erklärt..
http://www.nkylab.de/blog/archives/000014.php

und generell finde ich kann man nicht sagen das der include in flash so funzt - "das die datein direkt eingebacken werden"

das ist vielleicht in PHP so....wo ich mitten in mein Script -ein include setzte kann....

aber mit den neuen Flashversionen ist es ja so - das nur noch Klassendefinitionen includiert werden können....was ich persönlich als sehr störend empfinde.....da ich manchmal - wenn ich eine grosse Klasse habe.....einzelne Methoden gerne includiere....naja ..vielleicht findet sich da uch noch ne Möglichkeit...

Gruss nky
nky ist offline   Mit Zitat antworten
Alt 11-02-2004, 13:14   #10 (permalink)
Self-proclaimed Genius
 
Benutzerbild von genesys
 
Registriert seit: Jul 2002
Ort: schweiz
Beiträge: 282
allerdings!
wie kann mit dieser funktion geprüft werden, ob die datei geladen wurde, wenn sie im script erst einige zeilen weiter unten geladen wird?? *baum*

und heisst das, dass ich all meine Variabelnzugriffe, die z.b. heissen _root.asdf in _root.a.asdf umschreiben muss?
oder kann ich einfach irgendwie aus dem _root. das LoadVars objekt machen? *jetztganzdendurchblickverlorenhab*
genesys ist offline   Mit Zitat antworten
Alt 11-02-2004, 13:26   #11 (permalink)
Self-proclaimed Genius
 
Benutzerbild von genesys
 
Registriert seit: Jul 2002
Ort: schweiz
Beiträge: 282
ah der Link ist super danke Vielmals
genesys ist offline   Mit Zitat antworten
Alt 11-02-2004, 13:45   #12 (permalink)
Self-proclaimed Genius
 
Benutzerbild von genesys
 
Registriert seit: Jul 2002
Ort: schweiz
Beiträge: 282
hmmm . . . . funktioniert irgendwie immer noch nicht!

wenn ich das LoadVars objekt variabelnLoader habe, wie uebergebe ich dann die variabeln an den _root, so dass eine Variabel, die folgendermassen im textfile steht:
&blabla=test
durch den befehl _root.blabla aufgerufen werden kann?
genesys ist offline   Mit Zitat antworten
Alt 11-02-2004, 13:55   #13 (permalink)
nky
Bontempi Punk
 
Benutzerbild von nky
 
Registriert seit: Dec 2001
Ort: Dtld/Pfalz
Beiträge: 4.185
du kannst die vars die in loader stehen folgendermassen aufrufen:

1.
entweder du belässt den ganzen krempel in loader
trace(_root.loader.myVariable)

2.
oder du referenzierst halt die var auf root
_root.test = _root.loader.myVariable
dann trace(_root.test)

wobei ich dir empfehlen würde das ganze gelumps im loader zu lassen....dann müllst du dein root nicht zu......
aber mach wie es Dir leichter fällt...

Gruss nky
nky ist offline   Mit Zitat antworten
Alt 11-02-2004, 13:58   #14 (permalink)
Self-proclaimed Genius
 
Benutzerbild von genesys
 
Registriert seit: Jul 2002
Ort: schweiz
Beiträge: 282
wenn ichs im loader belasse müsste ich das ganze flash umschreiben . . . .
und so mit übergeben muss ich das für jede einzelne variabel machen, wobei ich aber im voraus gar nicht weiss, wie all die variabeln heissen.
gibts keine möglichkeit, einfach sämtliche variabeln im loader auf einmal in den root zu packen? macht nix wenn der zugemüllt ist . . .
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt - Albert Einstein
genesys ist offline   Mit Zitat antworten
Alt 11-02-2004, 14:12   #15 (permalink)
nky
Bontempi Punk
 
Benutzerbild von nky
 
Registriert seit: Dec 2001
Ort: Dtld/Pfalz
Beiträge: 4.185
puhh...das geht - aber das ist kein Script das ich ohne Flash aus dem Handgelenk schütteln könnte....
auf die schnelle kann ich Dir da net weiterhelfen....
das wär eigentlich schon ne Frage für nen eigenen Thread....
bzw - vielleicht gibt es auch schon eine Klasse die sowas kann....ich kenn aber jetzt keinen Workaround...

Gruss nky
nky 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 08:19 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele