Dynamische Menüs - onRelease Auslöser

matth-ee

Mitglied
Hallo liebe Community!

Ich bastle gerade an einer Flash-Homepage, wo die Menüs dynamisch aufgebaut werden sollen. Die Anzeige hab ich soweit hinbekommen, jetzt hab ich aber ein Problem mit dem auslösen der Buttons: wenn ich die mc.onRelease Funktion definiere kann ich keine statische Variable in die Funktion schreiben. In meinem Fall müsste ich aber auf die Variable number in der Maske zugreifen, um meinen Inhalt anzupassen.

Jetzt meine Frage: gibt es eine Möglichkeit den "Auslöser" des onRelease - Events meines Buttons festzustellen oder an die Variable numbers in der Auslösermaske zu kommen? Wenn nicht, was würdet ihr für Alternativen vorschlagen, um mein Menü dennoch dynamisch zu halten?

Hier noch der Code:
Code:
_root.loadVariables("list.php");
_root.onData = function() {
	files = _root.nm.split(",");
	mf = new TextFormat();
	mf.font = "Helvetica";
	mf.size = 18;
	w = 80;
	h = 30;
	for (i=0; i<files.length; i++) {
		menu.createEmptyMovieClip("schrift"+i,i+100);
		menu["schrift"+i]._x = 0;
		menu["schrift"+i]._y = i*40;
		menu["schrift"+i].createTextField("textfld",1,7,7,100,40);
		menu["schrift"+i].textfld.text = files[i];
		menu["schrift"+i].textfld.selectable = false;
		menu["schrift"+i].textfld.textColor = 0xffffff;
		menu["schrift"+i].textfld.setTextFormat(mf);
		menu["schrift"+i].createEmptyMovieClip("mask",getNextHighestDepth());
		menu["schrift"+i].mask.beginFill(0xff0000,50);
		menu["schrift"+i].mask.moveTo(0,0);
		menu["schrift"+i].mask.lineTo(w,0);
		menu["schrift"+i].mask.lineTo(w,h);
		menu["schrift"+i].mask.lineTo(0,h);
		menu["schrift"+i].mask.endFill();
		menu["schrift"+i].number=i;
		menu["schrift"+i].mask.onRelease= function() {
			_root.ausgabe = i;
		}
		
	}
};

(list.php gibt mir die Menüeinträge aus)

danke im Voraus

matth-ee
 
Hallo,

In meinem Fall müsste ich aber auf die Variable number in der Maske zugreifen, um meinen Inhalt anzupassen.

PHP:
menu["schrift" + i].number = i;
menu["schrift" + i].mask.onRelease = function() {
	_root.ausgabe = this._parent.number;
};

Performanter ist es wenn du eine referenz zu dem mc anlegst anstatt jedesmal den Pfad zu durchlaufen:

PHP:
var obj:MovieClip = menu.createEmptyMovieClip("schrift" + i, i + 100);
obj._x = 0;
obj._y = i * 40;
usw....
 
Hallo!

Funktioniert wunderbar!
Mein Denkfehler war, dass ich dachte die onRelease-Funktion wird von der Erstellungshierachie ausgeführt, nicht vom Objekt das es betrifft.

lg matth-ee
 

Neue Beiträge

Zurück