Dynamisches Menü (MX)

Matthias Kannengiesser

Erfahrenes Mitglied
Hi Folks,

Hier mal wieder etwas leichte Kost. Ich bin sicher auch hier stecken wieder einige Anregungen. Also viel Spass beim umbauen und ausbauen. Sicher eine gute Übung um Lineare und assoziative Arrays (Hashes) einzusetzen.

PHP:
// MenüClips (Inhalte innerhalb eines Arrays definieren)
mPunkte = new Array();

mPunkte[1] = {titel: "Multimedia", 
			  inhalt: "Dies ist der Text im Menüclip!",
			  url: "http://www.multimedia.de"
			  };
mPunkte[2] = {titel: "Flashstar", 
			  inhalt: "Hier geht es ab zu Flash und mehr.",
			  url: "http://www.flashstar.de"
			  };
mPunkte[3] = {titel: "Flashangel", 
			  inhalt: "Der Flashengel für pures Flash.",
			  url: "http://www.flashangel.de"
			  };
mPunkte[4] = {titel: "Cybercollege", 
			  inhalt: "Das multimediale College im Netz",
			  url: "http://www.cyber-college.de"
			  };
			  
// Anzahl der Menüclips ermitteln
anzahl = mPunkte.length;

// Erzeugen der MenüClips auf der Bühne dies erfolgt
// durch eine For-Schleife.
for (i=1; i<anzahl;i++) {
	attachMovie("MClip", "MClip" + i, i);
	this["MClip"+i]._x = Stage.width/2;
	this["MClip"+i]._y = this["MClip"+i]._height*i*1.05;
	this["MClip"+i].txtTitel = _root.mPunkte[i].titel.toUpperCase();
	this["MClip"+i].txtInhalt = _root.mPunkte[i].inhalt;
	this["MClip"+i].link = _root.mPunkte[i].url;
	this["MClip"+i].onRelease = function() {
		getURL(this.link,"_blank");
	}
}

Beispiel:
Bitte hier lang

FLA:
FLA Portal

Be inspired!

mfg
Matze K.
 
Yep, das nenn' ich Minimalismus. :)

Fehlt nur noch, dass dein Symbol per lineTo() plus fill-Methoden generiert wird. :)

Aber btw - ein "hash" ist bei mir folgendes Symbol: #

have a nice day,
Geist
 
Geist: Yup und Hashes sind auch assoziative Arrays :) - Wie du siehst können Wörter auch mehrfach Bedeutungen haben. Aber damit müssen wir wohl leben...

mfg
Matze K.
 
Und Arrays mit Objekten als Elementen nennt man assoziativ?

Sind doch imho ganz normale Arrays, die halt den Vorteil haben, dass ihre Elemente noch Unterelemente beinhalten. :)

Oder gibt's "assoziative Arrays für Flash" und "assoziative Arrays für JavaScript"/"PHP" denn dort ist das Zuordnen á la "blab => blubb" doch irgendwie 'ne andere Geschichte als das Einordnen von Objekten in Arrayelemente, oder?

Geist
 
Yup die Zuordnung ist eine andere aber das Prinzip bleibt das gleiche. Dies ist die Struktur eines assoziativen Arrays (Hashes):

PHP:
{titel: "Multimedia", 
              inhalt: "Dies ist der Text im Menüclip!",
              url: "http://www.multimedia.de"
              };

Der unterschied besteht darin das nicht mit indizes, sondern mit attributen (Eigenschaften) gearbeitet wird.

mfg
Matze K.
 
Okay, verstehe ich.

Aber - ohne es jetzt abwerten zu wollen o.ä. - es ist trotzdem nichts weiter als das Einordnen von Objekten in ein Array, was der typeof-Operator ja auch besätigt. :)

Geist - der doch nicht etwa in Stänkerlaune ist? ;)
 
Das ist ja das besondere ist es dir noch nicht aufgefallen, das Hashes im Grunde Objekten gleichen :)

Daher spricht man auch von der dualität von Assoziativen Arrays und Objekten.

mfg
Matze K.
 
Ehrlich gesagt bin ich im Terminus "assoziative Arrays" und deren Gestaltung nicht allzu bewandert, da ich mich bisher auch nicht mit Scriptsprachen auseinandergesetzt haben, die diese möglich machen. :)

Was heißt für dich in dem Falle "im Grunde gleichen" und "Dualität" - welche Verhaltensunterschiede darf man erwarten?

Geist
 
Ist recht einfach Arrays = Objekte und umgekehrt. Es gibt lediglich einen Unterschied in Flash und das ist der Klassenbezug.

Arrays gehören der Klasse Array an. Mit all Ihren Methoden, wie pop(), push, shift(), unshift(), etc.

Objekte gehören der Klasse Object an. Mit all Ihren Methoden, wie valueOf(), instanceOf(), etc.

Dualität in der Struktur JA - 100% gleich NEIN!

Ist die Welt nicht einfach ;)

mfg
Matze K.
 
Worin bestünde dann der Sinn dieser Einteilung, wenn die Methoden und Eigenschaften der Klassen eh zusammengelegt werden könnten?

Darin, eine an andere Scriptsprachen angelehnte Scriptsprache (also ActionScript) den Gesetzmäßigkeiten ihrer Muttersprachen zu unterwerfen und es damit vielleicht Leuten, die bspw. aus der JavaScript-Ecke kommen die Umgebung einfacher und vertrauter zu machen?

Geist
 

Neue Beiträge

Zurück