Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 07-10-2005, 09:58   #1 (permalink)
Neuer User
 
Registriert seit: Aug 2005
Beiträge: 131
String in Variablen umwandeln...

Hi NG,

ich lade einen String in FLash aus PHP. Das funktioniert perfekt.
Dann kann ich auch über die for in Schleife alle Variablen anzeigen lassen:
// string ist shopdaten
var i:String;
for (i in shopdaten) {
trace("_root." + i + " = " + shopdaten[i]);
}
//
funktioniert perfekt!
Nur was ich einfach nicht schaffe, ist das die variable direkt in Flash gespeichert werden. Am besten direkt unter _root.

Wie schaffe ich das? Da es viele sind, am besten gleich direkt durch die Schleife und mit dem vorhandenen Namen...


Danke für Hilfe!
Mike
TELLO ist offline   Mit Zitat antworten
Alt 07-10-2005, 10:08   #2 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
hm.. bin mir nicht 100% sicher was du meinst... so in der art vielleicht?!
PHP-Code:
shopdaten = {};
shopdaten.test1 12;
shopdaten.test2 456;
shopdaten.test3 "hallo";
shopdaten.test4 "heino";

// string ist shopdaten

for (var i in shopdaten) {

    
_root[shopdaten[i]] = shopdaten[i];
    
    
trace(_root[shopdaten[i]]);

}
// 
aso.. hab jetzt in mx syntax und nicht mx2004 syntax gescripted

cya, sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!
salazar ist offline   Mit Zitat antworten
Alt 07-10-2005, 13:38   #3 (permalink)
Neuer User
 
Registriert seit: Aug 2005
Beiträge: 131
Klappt nich...

Mal genauer erklärt....
In meiner PHP binde ich die mySQL Daten zusammen.
Also unten die variable 1sd_2 mit dem Wert 2,97 und dann die 1sd_2 und so weiter. Count steht für den Datensatz. Wobei nur eine Zeile der mySQL ausgegeben wird.

Die sieht so aus wie unten:

1sd_1=2,97&1sd_2=2,61&1sd_3=2,35&1sd_4=2,31&1sd_5= 2,27&2sd_1=3,48&2sd_2=2,95&2sd_3=2,73&2sd_4=2,69&2 sd_5=2,65&3sd_1=4,32&3sd_2=3,28&3sd_3=3,1&3sd_4=3, 06&3sd_5=3,01&6sd_1=6,6&6sd_2=5,02&6sd_3=4,46&6sd_ 4=4,42&6sd_5=4,38&1kd_1=2,97&1kd_2=2,61&1kd_3=2,35 &1kd_4=2,31&1kd_5=2,27&2kd_1=3,48&2kd_2=2,95&2kd_3 =2,73&2kd_4=2,69&2kd_5=2,65&3kd_1=4,32&3kd_2=3,28& 3kd_3=3,1&3kd_4=3,06&3kd_5=3,01&6kd_1=6,6&6kd_2=5, 02&6kd_3=4,46&6kd_4=4,42&6kd_5=4,38&sd_mix=317,75& 1sd_mix=2,61&2sd_mix=2,95&3sd_mix=3,28&6sd_mix=4,7 5&kd_mix=317,75&1kd_mix=2,61&2kd_mix=2,95&3kd_mix= 3,28&6kd_mix=4,75&1beize=0,84&2beize=0,84&3beize=0 ,84&6beize=0,84&1lack=1,37&2lack=1,46&3lack=1,55&6 lack=1,68&brenn_1=0,33&brenn_2=0,22&brennstempel=9 9&druck_1=0,43&druck_2=0,29&drucksieb=69&1wolle=0, 30&2wolle=0,30&3wolle=0,39&6wolle=0,39&1vkarton=0, 32&2vkarton=0,42&3vkarton=0,50&6vkarton=0,74&1papi ereinl=0,32&2papiereinl=&3papiereinl=0,42&6papiere inl=0,74&count=1

Und die lade ich mir in Flash rein. trace(shopdaten); liefert diese auch schön aus.
Jetzt möchte ich, dass die variablen mit den dazu gehörenden Daten gleich als _root.variable also z.B.: _root.1sd_1 = 2,97 abgelegt wird.
Nur das packe ich nicht.
Wie bekomme ich das hin, dass ich quasi den String wieder in Variablen aufteile und der dann auch direkt z.B. _root gespeichert wird...


Danke
Mike
TELLO ist offline   Mit Zitat antworten
Alt 07-10-2005, 13:48   #4 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hi!
Abgesehen davon, dass Variablen nicht mit einer Zahl anfangen können, ginge das so. Die Frage ist aber, ob man das überhaupt braucht, da die Werte ja in dem Array auch verfügbar sind:
ActionScript:
  1. var test = "sd_1=2,97&sd_2=2,61";
  2. var arr1 = test.split("&");
  3. for (var x = 0; x<arr1.length; x++) {
  4.     arr1[x]=arr1[x].split("=")
  5.     _root[arr1[x][0]] = arr1[x][1]
  6. }
  7. trace(_root.sd_1)
  8. trace(_root.sd_2)
  9. //
  10. trace(arr1[0])
  11. trace(arr1[1])
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 07-10-2005, 19:22   #5 (permalink)
Neuer User
 
Registriert seit: Aug 2005
Beiträge: 131
Hi Frager,

"mal abgesehen ob man das überhaupt braucht" - bedeutet, dass man direkt auf und immer auf den array zugreift. Oder?.... Dachte mir, wegen der Übersicht wäre es besser, wenn die Variablen so stehen...


Mike //dankend....
TELLO ist offline   Mit Zitat antworten
Alt 07-10-2005, 21:16   #6 (permalink)
Neuer User
 
Registriert seit: Aug 2005
Beiträge: 131
Ich glaube das Problem steckt bei mir im geladenen String. Ich gebe den in UTF8 über meine PHP Seite aus. Das ist immer perfekt, wenn ich dynamische Textfelder füllen möchte.

Bei obigem Script kommen alle Variablen als undefined an. Ausser ich setze meinen String zu testzwecken selber mal ein.
Also kann der Fehler doch nur vom Zeichensatz des String her kommen????

Hier der String, wie er in Flash unter trace ausgegeben wird. Zum Vergleich steht der oben....


count=1&K%5F6%5Fpapiereinl=0%2C74&K%5F3%5Fpapierei nl=0%2C42&K%5F2%5Fpapiereinl=&K%5F1%5Fpapiereinl=0 %2C32&K%5F6%5Fvkarton=0%2C74&K%5F3%5Fvkarton=0%2C5 0&K%5F2%5Fvkarton=0%2C42&K%5F1%5Fvkarton=0%2C32&K% 5F6%5Fwolle=0%2C39&K%5F3%5Fwolle=0%2C39&K%5F2%5Fwo lle=0%2C30&K%5F1%5Fwolle=0%2C30&K%5Fdrucksieb=69&K %5Fdruck%5F2=0%2C29&K%5Fdruck%5F1=0%2C43&K%5Fbrenn stempel=99&K%5Fbrenn%5F2=0%2C22&K%5Fbrenn%5F1=0%2C 33&K%5F6%5Flack=1%2C68&K%5F3%5Flack=1%2C55&K%5F2%5 Flack=1%2C46&K%5F1%5Flack=1%2C37&K%5F6%5Fbeize=0%2 C84&K%5F3%5Fbeize=0%2C84&K%5F2%5Fbeize=0%2C84&K%5F 1%5Fbeize=0%2C84&K%5F6%5Fkd%5Fmix=4%2C75&K%5F3%5Fk d%5Fmix=3%2C28&K%5F2%5Fkd%5Fmix=2%2C95&K%5F1%5Fkd% 5Fmix=2%2C61&K%5Fkd%5Fmix=317%2C75&K%5F6%5Fsd%5Fmi x=4%2C75&K%5F3%5Fsd%5Fmix=3%2C28&K%5F2%5Fsd%5Fmix= 2%2C95&K%5F1%5Fsd%5Fmix=2%2C61&K%5Fsd%5Fmix=317%2C 75&K%5F6%5Fkd%5F5=4%2C38&K%5F6%5Fkd%5F4=4%2C42&K%5 F6%5Fkd%5F3=4%2C46&K%5F6%5Fkd%5F2=5%2C02&K%5F6%5Fk d%5F1=6%2C6&K%5F3%5Fkd%5F5=3%2C01&K%5F3%5Fkd%5F4=3 %2C06&K%5F3%5Fkd%5F3=3%2C1&K%5F3%5Fkd%5F2=3%2C28&K %5F3%5Fkd%5F1=4%2C32&K%5F2%5Fkd%5F5=2%2C65&K%5F2%5 Fkd%5F4=2%2C69&K%5F2%5Fkd%5F3=2%2C73&K%5F2%5Fkd%5F 2=2%2C95&K%5F2%5Fkd%5F1=3%2C48&K%5F1%5Fkd%5F5=2%2C 27&K%5F1%5Fkd%5F4=2%2C31&K%5F1%5Fkd%5F3=2%2C35&K%5 F1%5Fkd%5F2=2%2C61&K%5F1%5Fkd%5F1=2%2C97&K%5F6%5Fs d%5F5=4%2C38&K%5F6%5Fsd%5F4=4%2C42&K%5F6%5Fsd%5F3= 4%2C46&K%5F6%5Fsd%5F2=5%2C02&K%5F6%5Fsd%5F1=6%2C6& K%5F3%5Fsd%5F5=3%2C01&K%5F3%5Fsd%5F4=3%2C06&K%5F3% 5Fsd%5F3=3%2C1&K%5F3%5Fsd%5F2=3%2C28&K%5F3%5Fsd%5F 1=4%2C32&K%5F2%5Fsd%5F5=2%2C65&K%5F2%5Fsd%5F4=2%2C 69&K%5F2%5Fsd%5F3=2%2C73&K%5F2%5Fsd%5F2=2%2C95&K%5 F2%5Fsd%5F1=3%2C48&K%5F1%5Fsd%5F5=2%2C27&K%5F1%5Fs d%5F4=2%2C31&K%5F1%5Fsd%5F3=2%2C35&K%5F1%5Fsd%5F2= 2%2C61&K%5F1%5Fsd%5F1=2%2C97&onLoad=%5Btype%20Func tion%5D

Wie kann ich das lösen?

DANKE EUCH ;-)
Mike
TELLO ist offline   Mit Zitat antworten
Alt 08-10-2005, 10:38   #7 (permalink)
Neuer User
 
Registriert seit: Aug 2005
Beiträge: 131
Ich muss mich jetzt nochmal melden...

Folgendes habe ich probiert:
Wenn ich den String aus der PHP direkt als Variable in Flash definiere, dann geht alles.
Wenn ich den String einlese, dann habe ich die _ als % und nix geht mer.
Das war doch so ein Zeichensatzproblem...

HILFE - hat jemand von Euch nen Tip?


Mike
TELLO ist offline   Mit Zitat antworten
Alt 08-10-2005, 13:31   #8 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Tag!
Wie sieht denn der trace Befehl bzw. das Script zum Laden aus?
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 08-10-2005, 13:41   #9 (permalink)
Neuer User
 
Registriert seit: Aug 2005
Beiträge: 131
Hi Frager,

also hier mal ein verkürzter String zum testen:
http://www.webschumann.com/flMX/shop_laden2.php


Dann 1. Bild in Flash:

stop();
var shopdaten = new LoadVars();


shopdaten.onLoad = function () {


nextFrame();


};

shopdaten.load("http://www.webschumann.com/flMX/shop_laden2.php?"+new Date().getTime());



#######################

2.Bild in Flash

var arr1 = shopdaten.split("&");
for (var x = 0; x<arr1.length; x++) {
arr1[x]=arr1[x].split("=")
_root[arr1[x][0]] = arr1[x][1]
}
trace(_root.K1sd1)
trace(_root.K1sd2)
//trace(shopdaten);

//
stop();

##########


Mike
TELLO ist offline   Mit Zitat antworten
Alt 08-10-2005, 14:46   #10 (permalink)
Der Flasher...:D
 
Benutzerbild von Bananchen
 
Registriert seit: May 2005
Beiträge: 58
Sagt mal...

hab ich jetzt n Aussetzter oder stellen die sich nicht selbst als Vars dar, nach dem Laden?

Warum machst du das nicht per sendAndLoad??

Zitat:
Zitat von Flash Hilfe
LoadVars.sendAndLoad()
Verfügbarkeit
Flash Player 6; Verhalten geändert in Flash Player 7.

Verwendung
mein_lv.sendAndLoad(url, zielObjekt[, methode])

Parameter
url Die URL, an die Variablen hochgeladen werden sollen. Wenn die SWF-Datei, welche diesen Aufruf ausgibt, in einem Webbrowser läuft, muss sich die url in derselben Domäne befinden wie die SWF-Datei. Weitere Einzelheiten hierzu finden Sie im nachstehenden Abschnitt "Beschreibung".

zielobjekt Das LoadVars-Objekt, das die hochgeladenen Variablen empfängt.

methode Die GET- oder POST-Methode des HTTP-Protokolls.

Rückgaben
Ein String.

Beschreibung
Methode; sendet die Variablen im Objekt mein_lv an die angegebene URL. Die Antwort des Servers wird heruntergeladen und als Variablendaten geparst, und die resultierenden Variablen werden in das Objekt zielobjekt gestellt.
ActionScript:
  1. _global.neueUltimativeShopdaten=new LoadVars();
  2. shopdaten=new LoadVars();
  3. shopdaten.time=new Date().getTime();
  4. shopdaten.onLoad=function(ok){
  5. if(ok){
  6. trace("neueUltimativeShopdaten.var1 : "+neueUltimativeShopdaten.var1);
  7. }
  8. }
  9. shopdaten.sendAndLoad("deinedatei.php",neueUltimativeShopdaten,GET);

Script is nicht getestet, sondern nur grad ma fix zusammengeschustert....
Bananchen ist offline   Mit Zitat antworten
Alt 08-10-2005, 14:52   #11 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
...mach mal "trace (shopdaten.count)"... Du lässt die ja das gesamte LoadVars-Objekt ausgeben.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 08-10-2005, 16:27   #12 (permalink)
Neuer User
 
Registriert seit: Aug 2005
Beiträge: 131
Ah........

danke. Das war es. Also spreche ich die auch _root.shopdaten.xyz an.......


DANKE
MIKE
TELLO ist offline   Mit Zitat antworten
Alt 08-10-2005, 16:33   #13 (permalink)
Freizeitflasher
 
Benutzerbild von Alphanimal
 
Registriert seit: Jun 2004
Ort: Niederösterreich
Beiträge: 615
das LoadVars Objekt hat da das passende würd ich sagen...
LoadVars.decode(string)

ActionScript:
  1. lv = new LoadVars();
  2. lv.decode(string);
  3. for(prop in lv){
  4. trace(prop+": "+lv[prop]);
  5. }

string is der encodete datenstring
__________________
Some Flash Worx
Alphanimal ist offline   Mit Zitat antworten
Alt 10-10-2005, 12:00   #14 (permalink)
Neuer User
 
Registriert seit: Aug 2005
Beiträge: 131
Hi Frager,

eine Frage habe ich dann doch noch ;-)

die Variablen shopdaten.xyz liegen ja nicht _root. Hab schon probiert, aber wie bekomme ich das hin?

var arr1 = shopdaten.split("&");
for (var x = 0; x<arr1.length; x++) {
arr1[x]=arr1[x].split("=")
_root[arr1[x][0]] = arr1[x][1]
}



mike
TELLO ist offline   Mit Zitat antworten
Alt 10-10-2005, 12:06   #15 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Tag!
Mach's mal so:
ActionScript:
  1. _root.arr1 = shopdaten.split("&");
  2. for (var x = 0; x<_root.arr1.length; x++) {
  3.     _root.arr1[x] = arr1[x].split("=");
  4. }
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager 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:45 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele