| |||||||
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
| Objekt Array Problem
Hallo Ich habe da ein kleines Problem, beim Code unten werden zuerst einige Objekte deklariert( die Elemente einer Karte eines Computerspiels). dann in einem Array zusammengefasst, sprich die Karte erstellt: Mein Problem ist daß ich noch mehrere Level hinzufügen möchte die in Textdateien abgespeichert sind, aber ich schaffe es halt nur soweit daß in den Array die Buchstaben (als String) reingeschrieben werden und nicht die Objekte die eigentlich den Buchstaben zugeordnet sind. Kennt sich da wer aus? mit Dank im Voraus mfg Clemens //BLACK TOP var B:Object = new Object(); B.clip = "tile_blktop"; B.oktodrive = true; B.effects = new Object(); B.effects.bumpy = 3; B.effects.drag = 0.04; //POT HOLE var P:Object = new Object(); P.clip = "tile_pothole"; P.oktodrive = true; P.effects = new Object(); P.effects.bumpy = 5; P.effects.drag = .08; ///hier werden die Objekte definiert var map = new Array(); map[0] = [B,B,B,B,B,B,B,B,B,B,B]; map[1] = [B,B,B,B,B,B,B,B,P,B,B]; map[2] = [B,B,P,B,B,P,B,B,B,B,B]; map[3] = [B,B,B,B,B,B,B,P,B,B,B]; map[4] = [B,B,B,B,B,B,B,B,B,B,B]; map[5] = [B,P,B,B,B,B,B,B,B,B,B]; map[6] = [B,B,B,B,P,B,B,P,B,B,B]; map[7] = [B,B,B,B,B,B,B,B,B,B,B]; map[8] = [B,B,P,B,B,B,B,B,B,B,B]; map[9] = [B,B,B,B,B,B,B,B,B,B,B]; //hier wird die Karte zusammengestellt function arrayladen (dateiname,arr,punkt,x,y){ trace(dateiname+arr+punkt+x+y); _root[arr] = new Array(); _root[punkt] = new LoadVars(); _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]); }; }; }; }; };// das ist die Funktion zum Laden der Textdatei, die ja insofern funktioniert daß in die einzelnen Arrayelemente jeweils der Buchstabe reingeladen wird aber nicht das damit verknüpfte Objekt. arrayladen("Maptext.txt","map","maptxt","10","10") ; |
| | |
| | #2 (permalink) |
| Farbe ist Luxus Registriert seit: May 2003 Ort: Köln
Beiträge: 2.405
|
Hi, versuch mal das: ActionScript:
Grüße Sascha
__________________ 12:15, press return |
| | |
| | #3 (permalink) |
| neuling Registriert seit: Aug 2004
Beiträge: 198
|
Hi Danke das hat auch gleich funktioniert. Einen Schönheitsfehler hat das Skript noch. Das Loadvars-element hat ja als Bezichner _root[point] das eigentlich nur aus dem Grund daß es nicht funktioniert wenn das ganze ein statischer Name ist und ich die Funktion nochmal ( mit anderen Parametern) aufrufe. Wenn es ganz genau die gleichen Parametern sind. also wenn ich zB. nach Level 6 wieder auf Level1 zurückfalle funzt es auch nicht. Es ist halt so daß ich einen Bezeichner des Loadvarselements immer nur einmal verwenden kann. Meine Versuche _root mit this zu ersetzen etc. sind alle fehlgeschlagen, Bin verzweifelt. mfg Clemens |
| | |
| | #5 (permalink) |
| neuling Registriert seit: Aug 2004
Beiträge: 198
|
nein da hab ich mich wohl schlecht ausgedrückt es hat gar nichts mit "B" zu tun, es geht rein darum daß ich bei jedem Aufruf der Arrayladen-Funktionen einen neuen Namen für das LoadVars object braucht damit es funktioniert. Das Loadvars object wird ja eigentlich immer nur temporär gebraucht um die Daten in die Arrays einzulesen. Wenn ich jetzt sagen wir mal 100 mal Daten einlese habe ich dann auch 100 verschiedene,eigenständige Loadvarsobjekte erzeugt die vollkommen umsonst sind und wahrscheinlich die Geschwindigkeit beeinflussen. Ich suche halt nach einer Methode immer das gleich bezeichenet LoadVarsobjekt nur temporär zu verwenden. Ich hoff das ist jetzt etwas klarer. mfg Clemens |
| | |
| | #7 (permalink) |
| Neuer User Registriert seit: Jun 2001 Ort: Stuttgart
Beiträge: 6.415
|
deklarier die variable doch gleich temporär wenn du das loadVars objekt nur bis zum moment der auswertung brauchst. ActionScript:
um deine variablen auf einer beliebigen zeitleiste abzulegen, mußte diese natürlich auch als argument übergeben. ein this in einer funktion referenziert nunmal auf die funktion und nicht auf eine zeitleiste ActionScript:
|
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |