Probleme mit der Ereignisbehandlung

T

Trouble Shooter

Hi,

Ich bin im Laufe der Erstellung einer WebSite auf folgendes Problem gestoßen.
Bei dem Versuch eine MenuBar-Komponente in meine Site einzubauen, bin ich soweit gekommen, das ich diese mit Menüpunkten und Untermenüpunkten versehen kann. Allerdings schaffe ich es nicht die Ereignisbehandlung richtig zu erstellen. Wobei ich nicht weiss ob es sich um den falschen Code oder nur um die falsche Platzierung des Codes handelt.
Der Code steht im ersten Bild der Ebene ActionScript (in der darunter liegenden liegt die Ebene mit der MenuBar-Komponente). Der Befehl trace("abc") sollte jetzt beim testen den Text zumindest im Output-Fenster anzeigen, tut dies aber nicht.

Der Code sieht folgendermaßen aus:
Code:
var menu :mx.controls.Menu;

// Games
menu = MenuBarDesktop.getMenuAt(0);
menu.addMenuItem({label:"Oblivion"		,instanceName:"Game_Oblivion"});
... //  (<--- weiter Untermenüpunkte)

// Office
menu = MenuBarDesktop.getMenuAt(1);
menu.addMenuItem({label:"Word"			,instanceName:"Office_Word"});
...

// Design
menu = MenuBarDesktop.getMenuAt(2);
menu.addMenuItem({label:"Flash MX"		,instanceName:"Design_Flash"});
...

// Multimedia
menu = MenuBarDesktop.getMenuAt(3);
menu.addMenuItem({label:"Virtual CD v9"	 	,instanceName:"Multimedia_VirtualCD"});
...

// Internet
menu = MenuBarDesktop.getMenuAt(4);
menu.addMenuItem({label:"Mozilla FireFox"	,instanceName:"Internet_Mozilla"});
...

// Programmierung
menu = MenuBarDesktop.getMenuAt(5);

// LAN
menu = MenuBarDesktop.getMenuAt(6);
menu.addMenuItem({label:"Netzwerkumgebung"	,instanceName:"LAN_Netzwerkumgebung"});

// Tools
menu = MenuBarDesktop.getMenuAt(7);
menu.addMenuItem({label:"HD-Tune"			,instanceName:"Tools_HD-Tune"});
...

// Security
menu = MenuBarDesktop.getMenuAt(8);
menu.addMenuItem({label:"Commodo Firewall"	,instanceName:"Security_Commodo"});
...

///////////////////////////////////////////////////////////////////////////////////////
// change-Ereignis des Menüs abfangen
var lauscher = newObject();
lauscher.change = function(evt)
{
	var menu = evt.menu;
	var item = evt.menuItem;
	
	switch(item)
	{
		// Game
		case menu.Game_Oblivion:		trace("Oblivion");
										break;
		...  // (<-- Abarbeitung weiterer Untermenüpunkte)
		// Office
		case menu.Office_Word:			trace("Word");
										break;
		...
		// Design
		case menu.Design_Flash:			trace("Flash MX");
										break;
		...
		// Multimedia
		case menu.Multimedia_VirtualCD:	trace("Virtual CD v9");
										break;
		...
		// Internet
		case menu.Internet_Mozilla:		trace("Mozilla FireFox");
										break;
		...
		// Programmierung
		
		// LAN
		case menu.LAN_Netzwerkumgebung: trace("Netzwerkumgebung");
										break;
		// Tools
		case menu.Tools_HD-Tune:		fscommand("exec","HDTune.exe");
										break;
		...
		// Security
		case menu.Security_Commodo:		trace("Commodo Firewall");
										break;
		...
	}
};

var ANZAHL_MENUS = 9;
for(var n:Number = 0; n < ANZAHL_MENUS; ++n) 
{
	MenuBarDesktop.getMenuAt(n).addEventListener("change", lauscher);
}

Wo liegt mein Fehler?

Vielen Dank schon mal für jeden der sich die Mühe mir zu helfen.
Trouble Shooter
 
Zuletzt bearbeitet von einem Moderator:
Hello again,

Doppelpost! Pfui!
Code nicht in [ code ]-Dingern ! Pfui!

Poste halt mal bitte die *.fla, auch wenn man sich vorstellen kann, wo der Code liegt. Durch so einen Code durchzuarbeiten ist ja die Hölle, selbst wenn du es ja wo anders schonmal als *.txt rausgegeben hattest.

Ansonsten:
-schonmal mit if() statt mit case probiert? Zum Debuggen auf jeden Fall einen Versuch wert.
-lass dir per trace() direkt am Anfang der Reaktion ausgeben, ob überhaupt eine Reaktion auf die Änderung des ausgewählten Objektes deines Menüs auftritt.

Liebe Grüße
B.
 
Entschuldigung erstmal für de Doppelpost! *schäm,*

Die .fla wollte ich ja schon posten, aber die ist mit 340kb zu groß (Beschränkung auf 150kb).

Was deine Tipps angeht, nein habe ich noch nicht probiert. Werde das jetzt aber mal schleunigst tun.

Danke und Entschuldigung nochmal.

Trouble Shooter

Edit:
So jetzt alles in [ CODE ]-Dingern
 
Zuletzt bearbeitet von einem Moderator:
Hi,

Dein Fehler liegt hier:
Code:
var lauscher = newObject();
korrekt muss es lauten:
Code:
var lauscher = new Object();

Gruß
.
 
Hey Danke,

genau das war es.

Gutes Forum, gute Hilfe.

Ich glaub hier werde ich des öfteren um Hilfe bitten.

Danke, Danke, Danke.
 
Zurück