Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 08-04-2008, 21:43   #1 (permalink)
Unser Flash gib uns heute
 
Registriert seit: Sep 2001
Ort: Murschnitz
Beiträge: 123
Arrays und andere komische Sachen

Hi Leute

ich hab in meiner root folgendes Array:

ActionScript:
  1. navpoints = new Array();
  2. navpoints ["1"] = new Array();
  3. navpoints ["1"]["title"] = "Home";
  4. navpoints ["1"]["adresse"] = "home.swf";
  5. navpoints ["2"] = new Array();
  6. navpoints ["2"]["title"] = "Events";
  7. navpoints ["2"]["adresse"] = "events.swf";

Mit einer while Schleife durchlaufe ich das Array und Dupliziere nen MC

ActionScript:
  1. point = 1;
  2. newposx = 80;
  3. newposy = 320;
  4. while(point < navpoints.length){
  5.     duplicateMovieClip(_root.titlemc, navpoints[point]["title"], point);
  6.     set("_root."+navpoints[point]["title"]+".point",point);
  7.     setProperty("_root."+navpoints[point]["title"], _y, newposy);
  8.     setProperty("_root."+navpoints[point]["title"], _x, newposx);
  9.     newposy = newposy+50;
  10.     newposx = newposx+4;
  11.     point++;
  12. }

Soweit ist ja alles klar.
Im MC gibts nen Schaltfläche auf der folgendes AS liegt:

ActionScript:
  1. on(press){
  2. loadMovie(_root.navpoints[this.point]["adresse"],_root.getNextHighestDepth());
  3.     trace(_root.navpoints[this.point]["adresse"]);
  4.     trace(_root.getNextHighestDepth());
  5. }

Warum wird die SWF Datei nicht geladen wenn die traces den korrekten Wert bringen? Wenn ichs hart reinschreibe also:

ActionScript:
  1. on(press){
  2. loadMovie("home.swf",10);
  3.     trace(_root.navpoints[this.point]["adresse"]);
  4.     trace(_root.getNextHighestDepth());
  5. }

dann gehts und der Film wird geladen. Hat da jemand ne Idee?
__________________
http://www.mdm-systems.de
Dani Düsentrieb ist offline   Mit Zitat antworten
Alt 09-04-2008, 20:40   #2 (permalink)
hilft gerne...
 
Registriert seit: Feb 2007
Ort: Carlsberg
Beiträge: 416
Mh, also ich hab ein paar Tipps für dich. Ich weiß nicht, woran es genau liegen könnte, aber die Eingrenzung der Fehlerquellen würde sich verbessern, wenn du keine on (...) Ereignisse direkt auf den Buttons benutzt, sondern den Code auf level0 legst, ist dann auch übersichtlicher.
Dann musst du aber schreiben:
ActionScript:
  1. deinbutton.onPress = function() {
  2.   //.....tu was .....
  3. }

Was ich dir noch ans Herz legen würde, ist, dass du relative Pfadangaben wie z.B. _this oder this._parent, bei _root muss man immer ziemlich aufpassen.

Ganz vielleicht liegt es ja dran, dass du bei deiner funktionierenden Lösung die Tiefe explizit hinschreibst und nicht über _root.getNextHighestDepth() festlegst.

Grüßle
Jan
__________________
MfG Jan

Meine 2 besten Freunde: Flash-Hilfe und die Foren-Suche =)
McMannus ist offline   Mit Zitat antworten
Alt 09-04-2008, 22:54   #3 (permalink)
Unser Flash gib uns heute
 
Registriert seit: Sep 2001
Ort: Murschnitz
Beiträge: 123
Hi Jan

danke für deine Ausführungen aber zu einen erfolg bin ich erst durch das ändern der Funktion gekommen. Man nehme statt loadMovie loadMovieNum und schon klappt die ganze sache. Weshalb das so ist kann ich auch gleich noch sagen denn nach genauer Studie des Aktionscript Lexikons steht da das man loadMovie zu Laden eines Films in einen Ziel MC nutzen soll aber loadMovieNum zu laden eines Films auf eine best. Ebene.

Gruß Daniel
__________________
http://www.mdm-systems.de
Dani Düsentrieb ist offline   Mit Zitat antworten
Alt 10-04-2008, 05:39   #4 (permalink)
hilft gerne...
 
Registriert seit: Feb 2007
Ort: Carlsberg
Beiträge: 416
mh okay, darauf hatte ich natürlich mal wieder nicht geschaut Wenn du aber dein Fehler gefunden hast, ist gut.

Gruß
__________________
MfG Jan

Meine 2 besten Freunde: Flash-Hilfe und die Foren-Suche =)
McMannus ist offline   Mit Zitat antworten
Alt 10-04-2008, 07:48   #5 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.136
Trotzdem nicht ganz "klug", auch wenn es funktional ist. Arrays sollten in den meissten Fällen mit numerischen Werten arbeiten. Das macht das Handling wesentlich komfortabler. Das Array referenziert dann Objekte, die einen Schlüssel bekommen:
ActionScript:
  1. var array:Array = new Array();
  2. var object:Object = new Object();
  3. object.key = "object1";
  4. array.push(object);
Das nur so als Tip.
Omega Psi 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 13:07 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele