Zurück   Flashforum > Flex und AIR > Flex programmieren

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 16-04-2011, 13:30   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2006
Beiträge: 620
Auf Hauptmenüpunkt zugreifen (MenuBar)

Hallo zusammen.

Ich habe mich jetzt knapp 2 Stunden mit der MenuBar in Flex3 rumgeärgert. Ich habe einfach keinen gescheiten Weg gefunden auf die Hauptmenüs zugreifen zu können. Für die Untermenüs gibt es ja das MenuEvent und das Item auf das man dann zugreifen kann.
Im Internet habe ich nichts vergleichbares für die Hauptmenüpunkte gefunden (Hauptmenüpunkte -> "Datei" , "Bearbeiten"... halt Menüpunkte die Untermenüpunkte beherbergen).
Da ich Menüpunkte ohne Unterpunkte habe funktioniert das MenuEvent nicht?!

Jetzt habe ich solange rumprobiert bis ich endlich auf die Elemente zugreifen kann:

PHP-Code:
public function menuAuswahl2(e:MouseEvent):void{
    if (
e.currentTarget.selectedIndex != -1) {                
        
trace(e.currentTarget.dataProvider[e.currentTarget.selectedIndex].@label);
    }

Mir scheint das aber sehr umständlich. Aus dem Grund wollte ich euch gerne fragen ob es da einen besseren Weg gibt?!

MfG Monk
__________________
Flash CS5 / Flex 3 / Flashdevelop / FB 4.6
dr monk ist offline   Mit Zitat antworten
Alt 16-04-2011, 13:37   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.146
MenuItems, die Kindelemente haben, sollten keine Aktionen triggern, sondern eben nur die Optionen anzeigen, die das Untermenü zu Verfügung stellt.
Omega Psi ist offline   Mit Zitat antworten
Alt 16-04-2011, 13:40   #3 (permalink)
Neuer User
 
Registriert seit: Sep 2006
Beiträge: 620
Ich habe aber leider Menüpunkte ohne Kindelemente. Die müsste ich ja dann ausserhalb meiner Menübar als normale Schaltflächen definieren.
__________________
Flash CS5 / Flex 3 / Flashdevelop / FB 4.6
dr monk ist offline   Mit Zitat antworten
Alt 16-04-2011, 13:45   #4 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.146
? Schaue dir mal das Beispiel unten bei den Examples an mx.controls.Menu - ActionScript 3.0 Reference for the Adobe Flash Platform

Wenn du nur root Elemente hast, sollte das funktionieren. Ich hab's gerade getestet.
Omega Psi ist offline   Mit Zitat antworten
Alt 16-04-2011, 13:55   #5 (permalink)
Neuer User
 
Registriert seit: Sep 2006
Beiträge: 620
Ich habe leider nicht nur Root-Elemente. Und wenn ich das Menü über den Link von dir realisieren wollte, hätte ich ja nur einzelne Buttons die bei Bedarf ein Untermenü einblenden.

Damit du dir besser vorstellen kannst was ich meinte habe ich dir noch kurz einen Screenshot angehängt. Nur der Menüpunkt "Einstellungen" hat Unterpunkte. Alle anderen agieren als eigene Schaltflächen.

Klar könnte ich bei "Letzte 20" ein Unterpunkt "Letzte 20 anzeigen" erstellen aber das wäre glaub etwas komisch.

Funktionieren tut es ja nach meinem Code oben. Aber es geht bestimmt auch eleganter
Angehängte Grafiken
Dateityp: jpg menu.jpg (10,2 KB, 6x aufgerufen)
__________________
Flash CS5 / Flex 3 / Flashdevelop / FB 4.6
dr monk ist offline   Mit Zitat antworten
Alt 16-04-2011, 14:40   #6 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.146
Zitat:
Zitat von dr monk Beitrag anzeigen
Ich habe leider nicht nur Root-Elemente. Und wenn ich das Menü über den Link von dir realisieren wollte, hätte ich ja nur einzelne Buttons die bei Bedarf ein Untermenü einblenden.
Zitat:
Zitat von dr monk Beitrag anzeigen
Ich habe aber leider Menüpunkte ohne Kindelemente. Die müsste ich ja dann ausserhalb meiner Menübar als normale Schaltflächen definieren.
Ohne Code beantworte ich keine Fragen mehr. Ich habe keine Lust bei jedem dritten Post raten zu müssen, was gemeint ist & wie eine mögliche Implementierung aussehen könnte.
Omega Psi ist offline   Mit Zitat antworten
Alt 16-04-2011, 18:29   #7 (permalink)
Neuer User
 
Registriert seit: Sep 2006
Beiträge: 620
PHP-Code:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
    <mx:Script>
        <![CDATA[
        import mx.events.MenuEvent;
        import flash.events.MouseEvent;
    
        public function menuAuswahl(e:MenuEvent):void{
            
            if (e.item.@label == "Speicherort") {
                //einstellungen();    // Einstellungen aufrufen
            }
            else if (e.item.@label == "Update") {
                //update.update();    // Update durchführen
            }
            else if (e.item.@label == "Über...") {
                // platzhalter
            }
            
            
        }
        
        public function menuAuswahl2(e:MouseEvent):void{
            if (e.currentTarget.selectedIndex != -1) {    // wenn man auch einen Menüpunkt angeklickt hat
                
                var menuPunkt:String = e.currentTarget.dataProvider[e.currentTarget.selectedIndex].@label;
                
                if (menuPunkt == "Letzte 20") { 
                    //letzte20();    // letzte 20 aufrufen
                }
                
                else if (menuPunkt == "Statistiken") { 
                    // platzhalter
                }
                
                else if (menuPunkt == "Browser") { 
                    //namenslisteZeigen('tabs');    // Browser anzeigen
                }
            }
        }
        ]]>
    </mx:Script>
    
    <mx:ApplicationControlBar dock="true" paddingTop="0" paddingBottom="0"  >
        <mx:Label text="Beispiel" fontWeight="bold" color="0x000000"/>

        <mx:MenuBar id="mainmenu" labelField="@label" itemClick="menuAuswahl(event)" click="menuAuswahl2(event)">
            <mx:XMLList>
                <menuitem label="Letzte 20" />
                <menuitem label="Browser"/>
                <menuitem label="Statistiken"/>
                <menuitem label="Einstellungen" >
                    <menuitem id="speicherortMenu" label="Speicherort"/>
                    <menuitem id="groessePopupMenu" label="Größe Pop-Ups">
                        <menuitem label="klein" type="radio" groupName="one" />
                        <menuitem label="mittel" type="radio" groupName="one" />
                        <menuitem label="groß" type="radio" groupName="one" />
                    </menuitem>
                    <menuitem id="aufloesungenMenu" label="Auflösung Bilder">
                        <menuitem label="1" type="radio" groupName="one" />
                        <menuitem label="2" type="radio" groupName="one" />
                    </menuitem>
                    <menuitem label="Update" />
                    <menuitem label="Über..."/>
                </menuitem>
            </mx:XMLList>
        </mx:MenuBar>
    </mx:ApplicationControlBar>
</mx:Application>
Es tut mir leid das ich mich nicht mit Worten verständlich machen kann. Funktion ist ja gewährleistet - auch wenn es ein unnötiger Workaround ist (im Vergleich zu dem MenuEvent und e.item)

MfG Monk
__________________
Flash CS5 / Flex 3 / Flashdevelop / FB 4.6
dr monk 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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
menubar Peter Flesch Flash Einsteiger 3 18-04-2006 13:26
MenuBar compuboy1010 ActionScript 1 0 27-02-2006 19:28
UI MenuBar FrUcHtI_owned Flash MX 2004 0 06-07-2005 12:24
MenuBar + XML silentx Komponenten und SmartClips 2 07-10-2004 08:29
menubar coolstranger Flash MX 2004 2 16-10-2003 12:46


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:03 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele