IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flex Discussion :

MenuBar et AS3


Sujet :

Flex

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 30
    Par défaut MenuBar et AS3
    Bonjour,

    Afin de rendre mon code plus propre et de ne pas créer le menu de mon application dans le fichier mxml principal, j'ai créé une classe qui se charge de faire cela.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
     
    package
    {
     
     
            public class InitMenu
            {
                    import flash.display.NativeMenu;
                    import flash.display.NativeMenuItem;
                    import flash.display.NativeWindow;
                    import flash.display.Sprite;
                    import flash.events.Event;
                    import flash.filesystem.File;
                    import mx.controls.alert;
     
                    public function InitMenu()
                            {
     
                            createMenu();
                            }
     
                    public function createMenu():NativeMenu
                    {
                            var menu:NativeMenu = new NativeMenu();
                            var menuItem1:NativeMenuItem = new NativeMenuItem("Takeoff");
                            menuItem1.submenu = createTakeoffMenu();
                            //menuItem1.addEventListener(Event.SELECT, selectHandler);
                            menu.addItem(menuItem1);
     
                            var menuItem2:NativeMenuItem = new NativeMenuItem("Landing");
                            menuItem2.submenu = createLandingMenu();
                            //menuItem2.addEventListener(Event.SELECT, selectHandler);
                            menu.addItem(menuItem2);
                            return menu;
                    }
     
                    private function createTakeoffMenu():NativeMenu
                    {
                            var menu:NativeMenu = new NativeMenu();
                            var takeoffItem1:NativeMenuItem = new NativeMenuItem("Gear Up");
                            takeoffItem1.checked = true;
                            //takeoffItem1.addEventListener(Event.SELECT, selectHandler);
                            menu.addItem(takeoffItem1);
                            var takeoffItem2:NativeMenuItem = new NativeMenuItem("Retract Flaps");
                            takeoffItem2.checked = true;
                            //takeoffItem2.addEventListener(Event.SELECT, selectHandler);
                            menu.addItem(takeoffItem2);
                            return menu;
                    }
     
                    private function createLandingMenu():NativeMenu
                    {
                            var menu:NativeMenu = new NativeMenu();
                            var landingItem1:NativeMenuItem = new NativeMenuItem("Gear Down");
                            //landingItem1.addEventListener(Event.SELECT, selectHandler);
                            menu.addItem(landingItem1);
                            var landingItem2:NativeMenuItem = new NativeMenuItem("Extend Flaps");
                            //landingItem2.addEventListener(Event.SELECT, selectHandler);
                            menu.addItem(landingItem2);
                            var landingItem3:NativeMenuItem = new NativeMenuItem("Shutdown");
                            //landingItem3.addEventListener(Event.SELECT, selectHandler);
     
                            var shutdownMenu:NativeMenu = new NativeMenu();
     
     
                            // Create submenu
                            var shutdownItem1:NativeMenuItem = new NativeMenuItem("Turn off avionics");
                            //shutdownItem1.addEventListener(Event.SELECT, selectHandler);
                            shutdownMenu.addItem(shutdownItem1);
     
                            var shutdownItem2:NativeMenuItem = new NativeMenuItem("Pull Mixture");
                            //shutdownItem2.addEventListener(Event.SELECT, selectHandler);                
                            shutdownMenu.addItem(shutdownItem2);            
     
                            var shutdownItem3:NativeMenuItem = new NativeMenuItem("Turn off Mags");
                            //shutdownItem3.addEventListener(Event.SELECT, selectHandler);                
                            shutdownMenu.addItem(shutdownItem3);
     
                            // Add submenu to parent menu
                            landingItem3.submenu = shutdownMenu;
     
                            menu.addItem(landingItem3);
                            return menu;
                    }
     
     
            }
    }

    Maintenant dans mon mxlm principal, je souhaite utiliser la fonction de création du menu au démarrage de l'application.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    <?xml version="1.0" encoding="utf-8"?>
    <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                                               xmlns:s="library://ns.adobe.com/flex/spark" 
                                               xmlns:mx="library://ns.adobe.com/flex/mx"
                                               creationComplete="{onStart();}"
                                               >
            <fx:Declarations>
                    <!-- Placer ici les éléments non visuels (services et objets de valeur, par exemple). -->
            </fx:Declarations>
            <mx:Image source="assets/Images/LogoOEv6.png" bottom="3" right="5" id="Logo_OE"/>
     
            <fx:Script>
                    <![CDATA[
     
                            import mx.controls.alert;
     
                            public function onStart() : void{
     
     
                             var monMenu:InitMenu=new InitMenu();
     
                            }
                            //private var newWindow:NativeWindow;
     
                    ]]>
            </fx:Script>
     
     
    </s:WindowedApplication>
    La compilation se passe bien mais mon application n'a pas le menu attendu.

    Une idée?

    Merci par avance pour votre aide

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Par défaut
    Bonsoir,

    Tu ne l'insères nul part ton menu de plus ta InitMenu n'étend pas NativeMenu donc difficile pour ton application de comprendre qu'il s'agit d'un menu.

    ++

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 124
    Par défaut
    Salut,

    Je ne connais pas ces menus mais de ce que j'en vois, tu crées un objet NativeMenu mais tu ne l'affectes nulle part pour le déclarer comme étant le menu d'une application, d'une window ou autre.

    Il te manquerait pas une ligne dans ton mxml principal du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var monMenu:InitMenu=new InitMenu();
    NativeApplication.nativeApplication.menu = monMenu;
    Voir la documentation en rapport.

    Charles.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 124
    Par défaut
    D'ailleurs en fait ce serait plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    NativeApplication.nativeApplication.menu = monMenu.createMenu();

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 30
    Par défaut
    Merci beaucoup, cela fonctionne!

Discussions similaires

  1. [MYSAIFU/POCKET PC] Questions sur la menubar
    Par pelo68 dans le forum Développement Mobile en Java
    Réponses: 5
    Dernier message: 01/05/2006, 09h15
  2. [ eclipse ][ view ] [ menubars ] comment loader un icon?
    Par Jean-Philippe Shields dans le forum Eclipse Platform
    Réponses: 3
    Dernier message: 06/12/2005, 14h01
  3. toolbar menubar...
    Par ebaynaud dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/12/2005, 18h28
  4. [FLASH MX] menuBar
    Par totoche dans le forum Flash
    Réponses: 7
    Dernier message: 01/12/2005, 15h52
  5. Attacher une MenuBar a une CDialog
    Par toto4650 dans le forum MFC
    Réponses: 3
    Dernier message: 17/06/2005, 17h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo