Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-03-2004, 12:30   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2004
Beiträge: 35
Unhappy Externes Array aus Textdatei einlesen (loadVariables???)

Ich habe in Flash ein internes Array, das ich gerne in eine Textdatei auslagern möchte, damit ich es schneller aktualisieren kann, bzw. einmal am Tag durch eine Datenbankabfrage füllen kann. Da meine Datenbank sehr langsam ist, will ich das nicht direkt im Flashfilm machen, sondern aus einer Textdatei rauslesen.
Also mein internes Array sieht wie folgt aus:
array_1 = [0,2,5,6];
array_2 = [1,3,2];
array_3 = [0,8,13,2];
array_4 = [4,7,3,2];
array_5 = [8,6,4,2];
....

Wenn ich das nun in eine Textdatei (array.txt) "auslagere" und mit: "loadVariablesNum("array.txt.txt", 0);" einlese, dann funktioniert es leider nicht mehr!


Meine Textdatei (array.txt) sieht wie folgt aus:
&array_1=[0,2,5,6]&array_2=[1,3,2]&array_3=[0,8,13,2]&array_4=[4,7,3,2]&array_5=[8,6,4,2]...

Was mache ich denn falsch?
Flash interpretiert meine Variablen als Textfelder und nicht als Arrays...
mhzip ist offline   Mit Zitat antworten
Alt 11-03-2004, 12:40   #2 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Ort: D'dorf
Beiträge: 765
hi mhzip und willkommen im Forum.

Flash kann über loadVariables nur Strings, und keine Arrays oder Objekte einlesen.

Du könntest deine array.txt so aufbauen:
&array_1=0,2,5,6&array_2=1,3,2...
(also ohne eckige Klammern)

In Actionscript müsstest du dann nachdem das Textfile geladen wurde die Strings "0,2,5,6" etc. in Arrays umwandeln:
ActionScript:
  1. array_1 = array_1.split(",");
"split" teilt einen String an den angegebenen Trennungszeichen und liefert dir ein Array zurück.

gruß,
roman
romän ist offline   Mit Zitat antworten
Alt 11-03-2004, 12:40   #3 (permalink)
AchimHomeZone
 
Benutzerbild von onip
 
Registriert seit: Feb 2002
Ort: Cöllefornia / Cologne / Kölle / Köln
Beiträge: 1.541
&array_1_0=0&array_1_1=2&&array_1_2=5&&array_1_3=6 &...

für array_1 sollte es so aussehen.

beim auslesen folgendes:

ActionScript:
  1. onClipEvent (load) {
  2.     loadVariables("array.txt", "");
  3. }
  4. onClipEvent (data) {
  5.     array1 = new Array();
  6.     for (var name in this) {
  7.         var isString = typeof (this[name]) == "string";
  8.         if (isString) {
  9.             array1.push(this[name]);
  10.             delete this[name];
  11.         }
  12.     }
  13.     delete name;
  14.     delete isString;
  15.     array1.reverse();
  16. }
  17. onClipEvent (mouseDown) {
  18.     trace(array1);
  19. }

das liegt jetzt auf ein mc, kannste auseinander nehmen um es auf den frames zu verteilen
__________________
__________________


4. Lunyu 2.13.

Zi Gong fragte, was einen Flasher ausmache.
Konfuzius sprach: "Er predigt nur das, was er zuvor schon selbst in die Tat umgesetzt hat."

Geändert von onip (11-03-2004 um 12:41 Uhr)
onip ist offline   Mit Zitat antworten
Alt 11-03-2004, 12:45   #4 (permalink)
AchimHomeZone
 
Benutzerbild von onip
 
Registriert seit: Feb 2002
Ort: Cöllefornia / Cologne / Kölle / Köln
Beiträge: 1.541
oder so wie romän

ActionScript:
  1. array_1="0,1,2,3,4";
  2. array_1 = array_1.split(",");
  3. trace(array_1[0]);
__________________
__________________


4. Lunyu 2.13.

Zi Gong fragte, was einen Flasher ausmache.
Konfuzius sprach: "Er predigt nur das, was er zuvor schon selbst in die Tat umgesetzt hat."
onip ist offline   Mit Zitat antworten
Alt 11-03-2004, 12:46   #5 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Ort: D'dorf
Beiträge: 765
oder halt so wie onip
romän ist offline   Mit Zitat antworten
Alt 11-03-2004, 12:51   #6 (permalink)
AchimHomeZone
 
Benutzerbild von onip
 
Registriert seit: Feb 2002
Ort: Cöllefornia / Cologne / Kölle / Köln
Beiträge: 1.541
die von romän ist aber einfacher und mit weniger code
__________________
__________________


4. Lunyu 2.13.

Zi Gong fragte, was einen Flasher ausmache.
Konfuzius sprach: "Er predigt nur das, was er zuvor schon selbst in die Tat umgesetzt hat."
onip ist offline   Mit Zitat antworten
Alt 11-03-2004, 12:54   #7 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Ort: D'dorf
Beiträge: 765
dafür ist die von onip komplett
romän ist offline   Mit Zitat antworten
Alt 11-03-2004, 12:59   #8 (permalink)
Neuer User
 
Registriert seit: Mar 2004
Beiträge: 35
Vielen Dank Euch Beiden!
Ich werde erstmal die Version von röman ausprobieren - ist weniger code und einfacher

Thanx a lot!
mhzip ist offline   Mit Zitat antworten
Alt 11-03-2004, 13:02   #9 (permalink)
AchimHomeZone
 
Benutzerbild von onip
 
Registriert seit: Feb 2002
Ort: Cöllefornia / Cologne / Kölle / Köln
Beiträge: 1.541
ActionScript:
  1. onClipEvent (load) {
  2.     loadVariables("array.txt", "");
  3. }
  4. onClipEvent (data) {
  5.     array1 = array1.split(",");
  6.     array2 = array2.split(",");
  7.     anzahl=array1.length;
  8.     for (i=0;i<anzahl;i++) {
  9.         trace(array1[i]+" / "+array2[i]);
  10.     }
  11. }

__________________
__________________


4. Lunyu 2.13.

Zi Gong fragte, was einen Flasher ausmache.
Konfuzius sprach: "Er predigt nur das, was er zuvor schon selbst in die Tat umgesetzt hat."
onip ist offline   Mit Zitat antworten
Alt 11-03-2004, 13:26   #10 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Ort: D'dorf
Beiträge: 765
ActionScript:
  1. onClipEvent (load) {
  2.     this.loadVariables("array.txt");
  3. }
  4. onClipEvent (data) {
  5.     var a;
  6.     var i = 0;
  7.     while (this["array"+(++i)] != undefined) {
  8.         a = this["array"+i] = this["array"+i].split(",");
  9.         var anzahl = a.length;
  10.         for (j=0; j<anzahl; j++) {
  11.             trace("array"+i +"[" + j + "] = " + a[j]);
  12.         }
  13.     }
  14. }
romän ist offline   Mit Zitat antworten
Alt 20-04-2004, 17:14   #11 (permalink)
Flex Entwickler
 
Registriert seit: Dec 2001
Ort: Walldorf
Beiträge: 21
ich steh auch vor so einem ähnlichen problem.

ich muss von flash aus ein array aus einem php script laden und dies als diagramm darstellen. wollt des eigentlich zuerst so machen wie mhzip es vorgeschlagen hat. ist blöd das es net geht.

ich glaub per xml dürfte es aber einfacher einen satz daten einzulesen, oder was meint ihr dazu?

mfg,
chris
scavanger ist offline   Mit Zitat antworten
Alt 20-04-2004, 18:32   #12 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
sind wir im mx -forum??? *umgugg*

und warum nehmt ihr kein LoadVars ???

und außerdem: ein wenig suchen/finden und schon hättet ihr ein paar ideen dazu...


aber davon mal ab...

wie sieht´s damit aus ?

ActionScript:
  1. LV = new LoadVars();
  2. LV.onLoad = function(suc){
  3.     if(suc){
  4.         var count;
  5.         for(var i in this){
  6.             if(i !='onLoad' ){
  7.                 var tmp = this[i];
  8.                 tmp = tmp.split('\r\n').join('');
  9.                 var arr1 = tmp.indexOf('[');
  10.                 var arr2 = tmp.indexOf(']');
  11.                 if((arr1 > -1) &&(arr2 > -1)){
  12.                         var arr =this['arr'+(++count)] = tmp.slice((arr1)+1,(arr2)).split(',');
  13.                           for( var j=0; j<arr.length;j++){
  14.                if(!isNaN(Number(arr[j]))) arr[j] = Number(arr[j]);
  15.                           }
  16.                 }
  17.             }
  18.         }
  19.     }
  20. }
  21. ASSetPropFlags(LV,'onLoad',1);
  22. LV.load('array.txt');

und die textdatei sieht so aus:
ActionScript:
  1. a = [3,5,7,9]
  2. &b = [7,11,345,'c']
  3. &c = [k,5,8,9,5647,fdgebs,fritz]

meintest du so?


greetz

kelor

Geändert von kelor (20-04-2004 um 18:34 Uhr)
kelor 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 09:19 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele