Macromedia fait depuis longtemps en sorte que les animations
Flash puissent devenir de véritables applications.
La dernière version de Flash fait un nouveau pas dans
ce sens en rendant possible l'accès au très
convoité menu contextuel, qui dans les précédentes
versions ne donnait accès qu'aux fonctions de base
du player Flash, sans réel rapport avec l'application
elle-même, ou au choix un menu quasi-vide.
C'est désormais chose faite : vous pouvez nous seulement
supprimer les éléments par défaut que
vous souhaitez, mais également ajoutez les vôtres,
liés à des évènement ActionScript
et à votre interface. Nous allons voir comment s'y
prendre.
Les classes du menu contextuel
L'ensemble des moyens d'accès au menu contextuel est
confiné dans les très justement nommées
classes ContextMenu et ContextMenuItems,
et les méthodes qu'elles définissent. Celles-ci
peuvent être accédées via les raccourcis
ActionScript monMenu_cm.
et monItem1_cmi..
Notez que ContextMenu dispose,
entre autres, d'une sous-classe, nommée builtInItems,
ayant des propriétés booléennes pour
chacune des options par défaut. Voici donc comment
s'y prendre pour supprimer toutes les options par défaut
(sauf Paramètres et A propos) via builtInItems
:
menuVide = new ContextMenu();
menuVide.builtInItems.forward_back = false;
menuVide.builtInItems.loop = false;
menuVide.builtInItems.print = false;
menuVide.builtInItems.quality = false;
menuVide.builtInItems.rewind = false;
menuVide.builtInItems.save = false;
menuVide.builtInItems.zoom = false;
_root.menu = menuVide;
On voit que créer menuVide
ne suffit pas : il faut ensuite l'assigner à la propriété
menu d'un MovieClip,
d'un Button ou d'un TextField,
à une couche (_layer1...)
ou à la racine (_root,
comme ici).
Utiliser builtIntItems a le
mérite d'être précis, mais ContextMenu
dispose d'une méthode plus directe, hideBuiltInItems()
:
menuVide = new ContextMenu();
menuVide.hideBuiltInItems();
_root.menu = menuVide;
C'est l'équivalent exact du code utilisant builtInItems,
mais est inutile si l'on ne souhaite, pas exemple, n'enlevez
que l'option zoom...
Introduire
ses propres options
Un menu personnalisé peut contenir jusqu'à 15
options. Une option dispose entre autres d'une propriété
booléenne nommée enabled,
qui permet de spécifier, selon la situation, si elle
est utilisable ou non. Dans les deux cas, l'utilisateur la
voit quand même.
Nous allons créer des options de menu qui permettent
simplement d'aller à l'image-clé suivante ou
précédente. Commencez par créer un nouveau
document Flash avec deux images-clés, et dessinez un
"1" sur la première et un "2" sur
la seconde.
Dans un calque dédié, créez ensuite le
code attaché à chaque image-clé. Le code
pour la première image est comme suit :
stop();
reculer = function () {
nextFrame();
};
monMenu = new ContextMenu();
monMenu.hideBuiltInItems();
options1 = new ContextMenuItem("Page suivante", reculer);
monMenu.customItems.push(options1);
_root.menu = monMenu;
Pour la deuxième image :
stop();
avancer = function () {
prevFrame();
};
monMenu = new ContextMenu();
monMenu.hideBuiltInItems();
options2 = new ContextMenuItem("Page précédente", avancer);
monMenu.customItems.push(options2);
_root.menu = monMenu;
Pour chaque image-clé, on supprime les options par
défaut avec hideBuiltInItems(),
puis on définit une nouvelle option avec ContextMenuItem(),
que nous ajoutons au menu contextuel de l'image-clé
grâce à la méthode customItems.push()
de notre objet monMenu. Ce
dernier est ensuite attaché à la racine avec
_root.menu. Attention : chaque
menu est spécifique à son image clé :
vous ne trouverez pas "Page suivante" dans la seconde
page, et réciproquement.
 |
Forum |
|
Réagissez
dans les forums
de JDN Développeurs
|
Combiné aux évènements ActionScript,
cela permet de construire un véritable menu personnalisé
et dynamique pour son application Flash. Nous pousserons plus
loin l'exploration de cette partie de Flash MX 2004 dans un
prochain article.
|