MenuBar

Freebaer

Grünschnabel
Hi,

ich lese nun schon seit einigen Tagen hier in dem Forum und hoffe das mir einer helfen kann. Es wurde schon oft das Thema MenuBar angesprochen wie man es erstellen kann ect., aber niemand hat hier gepostet wie man nun ein Event auslösen kann.

Mein stand ist:

-ich importiere zur laufzeit das mx.controls.MenuBar
-habe einzelne Menues erstellt (Datei, Ansicht) und dazu noch die Items

nur komme ich nicht weiter und habe hier echt jeden Thread gelesen den ich über Menu / MenuBar & co nur finden konnte.

Worum es mir geht:

Ein Menue zu bauen, wie es jeder kennt ( Datei, Bearbeiten, Ansichten etc...)
Menu klappt schon auf und Items stehen drin nur wenn ich drauf klicke passiert nichts. Was auch klar ist, da genau das meine frage ist. Wie Programmiere ich mit AS, das ein Event ausgelöst wird? MX2004 ist meine Entwicklungsumgebung.

Ich würde mich auch über 2 Lösungsbeispiele freuen:

Code:
import mx.controls.MenuBar;
   createClassObject(MenuBar,"menubar",0);
   menu = menubar.addMenu("Datei");
   menu.addMenuItem({label:"Neu", instanceName:"menu_new"});
   menu.addMenuItem({label:"Öffnen", instanceName:"menu_open"});



MFG
Freebaer
 
HI,

bitte poste bei solchen Fragen immer die Datei mit.
Einfach deswegen, weil ich keine Lust habe, alles neu zu konstruieren, bis ich an dem Punkt bin, den du beschreibst.

B
 
So,

ist in der Tat nicht ganz einsichtig in der Flashhilfe beschrieben, so geht es:
PHP:
///////////////////////////////////////////////////////////////////////////////////////
// Klasse importieren und Objekt initialisieren
///////////////////////////////////////////////////////////////////////////////////////
import mx.controls.MenuBar;
createClassObject (MenuBar, "menubar", 0);
///////////////////////////////////////////////////////////////////////////////////////
// SubMenus definieren und bestücken
///////////////////////////////////////////////////////////////////////////////////////
menu1 = menubar.addMenu ("Datei");
menu1.addMenuItem ({label:"Neu", instanceName:"menu_new"});
menu1.addMenuItem ({label:"Öffnen", instanceName:"menu_open"});
menu1.addMenuItem ({label:"Eigenschaften", instanceName:"menu_option"});
menu1.addMenuItem ({label:"Beenden", instanceName:"menu_close"});
menu2 = menubar.addMenu ("Ansichten");
menu2.addMenuItem ({label:"Zoom", instanceName:"menu_zoom", type:"normal", enabled:"false"});
menu2.addMenuItem ({label:"Anpassen", instanceName:"menu_adapt"});
menubar.setStyle ("fontWeight", "bold");
///////////////////////////////////////////////////////////////////////////////////////
// Listener Funktionen einzeln für Submenus
///////////////////////////////////////////////////////////////////////////////////////
var DateiListener = new Object ();
DateiListener.change = function (evt)
{
	// hier siehst du, was überhaupt in dem 'evt' Objekt üergeben wird
	trace ("Target:" + evt.target);
	trace ("Type:" + evt.type);
	trace ("menuBar:" + evt.menuBar);
	trace ("Menu:" + evt.menu);
	trace ("menuItem:" + evt.menuItem);
	trace ("groupName:" + evt.groupName);
	// ...
	var theMenu = evt.menu;
	var theMenuItem = evt.menuItem;
	switch (theMenuItem)
	{
	case theMenu.menu_new :
		// Neu gewählt
		_root.MenuText.text = "Event Neu";
		break;
	case theMenu.menu_open :
		// Öffnen gewählt
		_root.MenuText.text = "Event Öffnen";
		break;
	case theMenu.menu_close :
		// Eigenschaften gewählt
		_root.MenuText.text = "Event Schliessen";
		break;
	case theMenu.menu_option :
		// Schliessen gewählt
		_root.MenuText.text = "Event Optionen";
		break;
	default :
		// error: nur für den Fall
		trace ("Error: Unknown menu item selected");
		break;
	}
};
var AnsichtenListener = new Object ();
AnsichtenListener.change = function (evt)
{
	var theMenu = evt.menu;
	var theMenuItem = evt.menuItem;
	switch (theMenuItem)
	{
	case theMenu.menu_zoom :
		// Neu gewählt
		_root.MenuText.text = "Event Zoom";
		break;
	case theMenu.menu_adapt :
		// Öffnen gewählt
		_root.MenuText.text = "Event Anpassen";
		break;
	default :
		// error: nur für den Fall
		trace ("Error: Unknown menu item selected");
		break;
	}
};
///////////////////////////////////////////////////////////////////////////////////////
// Listener registrieren
///////////////////////////////////////////////////////////////////////////////////////
menu1.addEventListener ("change", DateiListener);
menu2.addEventListener ("change", AnsichtenListener);

bzw. siehe Anhang

B
 

Anhänge

Echt super das du dir heute noch die Zeit genommen hast.


Ich bedanke mich. Und lasse auf jedenfall wieder was von mir hören. Soviel wie ich hier schon gefunden habe.

BIG THX

MFG
Freebaer
 
@Basileus:

Arrgh! ^^ - und ich habe es andauernd mit einem EventListener und einer "click"-Methode versucht - in meiner Version der Flashhilfe ist diese Komponente überhaupt nicht dokumentiert und auf macromedia.com zu suchen, hatte ich gestern keine Zeit.

Gruß
.
 
Die Doku kannst du in diesem Falle auch echt vergessen, wie so of bei den Komponenten.
Musste allerdings auch erst mal kräftig stöbern, bis mir klar war, wie es geht.
Ich finde die ganzen mitgelieferten Komponenten sowieso ziemlich fragwürdig - 50kb für ein Pulldownmenu, 60kb für diese Menubar, sorry da hat man es zu gut gemeint, das ist völlig unnötig und viel zu viel Ballast.

B
 
Ich finde die ganzen mitgelieferten Komponenten sowieso ziemlich fragwürdig - 50kb für ein Pulldownmenu, 60kb für diese Menubar, sorry da hat man es zu gut gemeint, das ist völlig unnötig und viel zu viel Ballast.
Das stimmt. Die Dinger bringen zwar theroretisch ne Menge Funktionalität mit, aber a) braucht man in den meisten Fällen vieles nicht, b) möchte man vielleicht ein anderes Layout und die Dinger nach eigenen Wünschen zu verschlanken bzw. Optik und Funktionalität zu ändern ist gewiss nicht einfacher, als sich selbst was zu machen. ;)

Gruß
.
 
Was aber möglich ist :) (Layout ändern)

Was die grösse angeht habt ihr schon recht, aber erst mal wissen wie es geht, ist mir schon eine menge Wert. Ich arbeite noch nicht so lange mit Flash und bin gerade in der Einarbeitungszeit und bin echt froh das Forum gefunden zu haben. Echt spitze und macht weiter so. Und noch mal Danke an euch beiden.

Auf das ich hier noch viel lernen kann


MFG
Freebaer
 
Hey,
ich hab da ma ne frage!
Kann man die MenuBar beliebig positionieren :confused:
Und ich sehe die Menübar bei mir gar nicht

David
 
Zurück