PopupManager + Class + ref null
Bonjour à tous,
Je viens de lire six page de questions relatives à l'utilisation des popup mais sans trouver de réponses.
Voici mon probléme.
J4ai une application AIR en Flex 4.
J'ajoute à cette application un menu de la maniére suivante:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
Pour Mac
var monMenu : CreateMenu = new CreateMenu();
if (NativeApplication.supportsMenu)
{
nativeApplication.menu = monMenu.loadMenu(nativeApplication.menu);
}
else if (NativeWindow.supportsMenu) //Windows
{
nativeWindow.menu = monMenu.loadMenu(nativeWindow.menu);
} |
J'ai donc une classe CreateMenu.as qui me permet de constuire mon menu:
En voici un petit bout:
Code:
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
|
public class CreateMenu extends NativeMenu
{
// fonction constructeur
// creation de la barre de menu
public function loadMenu(menu : NativeMenu = null):NativeMenu
{
// s'ajoute au menu actuel
menu = menu || new NativeMenu(); // si menu sinon new NativeMenu autre notation menu = menu ? menu : new NativeMenu
var menuItem5:NativeMenuItem = new NativeMenuItem("Paramètres");
menuItem5.submenu = createParamMenu();
menu.addItem(menuItem5);
return menu;
}
private function createParamMenu():NativeMenu
{
var menu:NativeMenu = new NativeMenu();
var paramItem1:NativeMenuItem = new NativeMenuItem("Personnaliser");
paramItem1.addEventListener(Event.SELECT , hParam);
menu.addItem(paramItem1);
return menu;
}
public function hParam(event:Event) : void
{
//wParamGlob - étant un fichier .mxml de type TitleWindow
//PopUpManager.createPopUp(Application as DisplayObject,wParamGlob,false);
var tw:TitleWindow = new wParamGlob();
PopUpManager.addPopUp(tw, this.parent as DisplayObject , false);
} |
Lorsque je clique sur le sous-menu Personnaliser qui fait donc appel à la fonction hParam, j'ai le message suivant:
Code:
1 2 3 4 5
| TypeError: Error #1009: Cannot access a property or method of a null object reference.
at mx.managers::PopUpManagerImpl/http://www.adobe.com/2006/flex/mx/internal::getTopLevelSystemManager()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\PopUpManagerImpl.as:450]
at mx.managers::PopUpManagerImpl/addPopUp()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\PopUpManagerImpl.as:310]
at mx.managers::PopUpManager$/addPopUp()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\PopUpManager.as:193]
at fr.intersystemes.util::CreateMenu/hParam()[/Volumes/DEV/Dev Flex/Projets/OrthoExpert6/src/fr/intersystemes/util/CreateMenu.as:351] |
Je pense que mon problème vient de la réf au DisplayObject, j'ai essayé un certain nombre de choses sans succés.
Si vous avez une idée sur la question, vous m'enlèverez une grosse épine du pied ;-)
Merci par avance.