| |||||||
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) |
| neuling Registriert seit: Aug 2004
Beiträge: 198
|
Hallo Hoffentlich kann mir jemand bei dem folgenden Problem helfen. Das Actionscript unten lädt Variablen aus einer Textdatei in 2dimensionales Array, daß funktioniert auch, das Problem ist damit es funktioniert muss ich vorher ein Array in der richtigen Größe vorerstellen, sonst gehts nämlich nicht. Was beim untenliegenden Beispiel nur ein 5x5 Raster ist ist in Wirklichkeit 70X70, was enorm umständlich ist, Beim erstellen eines Arrays kann man ja die Größe angeben, allerdings nur für eine Dimension, was macht man bei 2 Dimensionen? Vielen Dank im Voraus mfg Clemens _root.Map = new Array(); Map[0] = [x,x,x,x,x]; Map[1] = [x,x,x,x,x]; Map[2] = [x,x,x,x,x]; Map[3] = [x,x,x,x,x]; Map[4] = [x,x,x,x,x]; //das würde ich mir gern ersparen, vielleicht mit einer :for.. Schleife? _root.MapParser = new LoadVars(); _root.MapParser.load("TEST.txt"); _root.MapParser.onLoad = function(true) { if (true) { for (j=0; j<5; j++) { txtstring = _root.MapParser["map"+j]; trace("Hauptdurchlauf ="+j); trace("textstring"+txtstring) _root.zeile = txtstring.split(","); trace("zeilenarray"+zeile [0]+zeile [1]+zeile [2]+zeile); for (n=0; n<5; n++) { _root.Map [n] [0] = zeile [n]; trace("durchlauf innereSchleife"+n); trace("Maparray"+Map [n] [0]); }; }; } }; P.S.: wie kriegt man seinen Code eigentlich in so ein gelbes Kasterl, wenn ich auf Code einfügen geh wird er zwar auch in einen Kasten und farblich richtig angezeigt aber alles in einer Zeile |
| | |
| | #2 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.321
|
"..das würde ich mir gern ersparen, vielleicht mit einer :for.. Schleife?.." und warum tust du es nicht, wenn du schon weisst wie es geht??? "..wie kriegt man seinen Code eigentlich in so ein gelbes Kasterl.." äääh hüstel, hüstel, flash stellt das fenster auf die gehirngrösse des jeweiligen users ein :-) (sorry, der musste jetzt einfach sein) vielleicht öffnest du einmal das "Actionen"-fenster?
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
| | #3 (permalink) |
| neuling Registriert seit: Aug 2004
Beiträge: 198
|
na, so ist wieder nicht, daß mit der For- Schleife ist ja nur ein Ansatz mit dem ich mir vorstellen könnte daß es möglich ist. Für das einlesen der Textdaten verwende ich ja so eine Schleife, es funktioniert halt nur wenn der Array schon vorher erstellt ist. Mit gelbem Kastl hab ich die Hervorhebungsfunktionen für AS vom Flashforum gemeint und nicht irgendwas in Flash selber, schon gar nicht die "Actionen", denn das ist ja einfach nur ein dummer Anglizismus. Prinzipiell Seib frag ich mich warum du dir die Mühe machst, überhaupt eine Antwort zu schreiben, wenn du offenbar keine Lust hast dir das Problem überhaupt gescheit durchzulesen geschweige denn etwas konstruktives beizutragen. mfg Clemens |
| | |
| | #4 (permalink) |
| _//\\#//\\_ Registriert seit: Jan 2003
Beiträge: 7.060
|
@hgseib.... ( )@clemenses der hg ist ein guter... ![]() aber zu deiner frage: du kannst deine inneren arrays in der schleife erstellen und entsprechend füllen: ActionScript:
wenn ich dich recht verstanden habe... |
| | |
| | #5 (permalink) |
| neuling Registriert seit: Aug 2004
Beiträge: 198
|
Hallo Danke für die Lösung, Ich habs noch ein bißchen abändern müssen bis es funktioniert hat, vor allem mit der PushtoArrayFunktion bin ich nicht ganz warm geworden, deswegen hab ichs auf meine Methode gemacht.Ich hab das ganze noch dann erweitert und in eine Funktion verpackt. Vielleicht hat jemand Lust sich das ganze ein bißchen anzuschauen. Problematisch ist glaub ich vor allem, daß auch wenn ich nur einen anderen Datensatz aus der gleichen Datei lade, immer die ganze Datei geladen werden muss.(Und dann auch noch im Speicher verbleibt wenn ich mich nicht irre?) Also hier das Script: function arrayladen (dateiname,arr,punkt,x,y){ trace(dateiname+arr+punkt+x+y); _root[arr] = new Array(); _root[punkt] = new LoadVars(); //_root[punkt] war vorher _root.MapParser _root[punkt].load(dateiname); _root[punkt].onLoad = function(true) { if (true) { for (j=0; j<x; j++) { txtstring = _root[punkt] [punkt+j]; zeile = txtstring.split(","); for (n=0; n<y; n++) { _root[arr][j]=[]; _root[arr] [j] [n] = zeile [n]; trace(arr+" koord x:"+j+"y:"+n+"="+_root[arr] [j] [n]); }; }; }; }; }; arrayladen("TEST.txt","MapArray","map","5","5","da da"); arrayladen("TEST.txt","ObjektArray","obj","5","5", "dudu"); arrayladen("TEST.txt","Highscore","high","1","10") ; und hier der Inhalt der dazugehörigen Textdatei: map0=A1,A2,A3,A4,A5&map1=B1,B2,B3,B4,B5&map2=C1,C2 ,C3,C4C5&map3=D1,D2,D3,D4,D5&map4=E1,E2,E3,E4,E5& obj0=A,A,B,A,A&obj1=A,A,B,A,A&obj2=A,A,B,A,A&obj3= A,A,B,A,A&obj4=A,A,B,A,A& high0=100,90,80,70,60,50,40,30,20,10& (natürlich ohne Absätze) mfg Clemens |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |