dimanche 19 décembre 2010

37 - Menu Clic Droit

Les cinématiques de fin sont enfin timées convenablement ; j'ai donc pu enchainer sur le menu clic droit.

Quand on effectue un clic droit sur un fichier Flash standard, on a accès à de nombreuses options : lire, zoomer, en avant, rembobiner...
Le problème, c'est que si un joueur clique sur "en avant", il accède à la scène suivante, ce qui peut engendrer de nombreux bugs et/ou tricheries :

Dans mon jeu, les scènes "playerSelect", "donjon" et "ending" se suivent dans cet ordre.
  • si on clique sur "en avant" alors qu'on est à l'écran de sélection du personnage, on se retrouve dans le donjon sans avoir chargé les stats du Héros ;
  • si on clique sur "en avant" alors qu'on est dans le donjon, on accède directement à la cinématique de fin.
Pour éviter ces désagréments, il faut modifier le menu clic droit en supprimant les commandes de base ; on peut aussi ajouter ses propres commandes personnalisées.

var MENUPERSO = new ContextMenu();// création de la variable "menu contextuel personnalisé"
MENUPERSO.hideBuiltInItems();// suppression des commandes usuelles (lire, rembobiner, zoomer... )
var commande1 = new ContextMenuItem("Reset", reset); // la commande "Reset" appelle la fonction "reset" définie plus bas
var commande2 = new ContextMenuItem("Version " add _global.version, version);
MENUPERSO.customItems.push(commande1); // on ajoute la commande1 au menu
MENUPERSO.customItems.push(commande2);
function reset() { // cette fonction permet de retourner à l'écran titre
maxdepth = 2000;
for (i=0; i<=maxdepth; i++) { removeMovieClip(_root.getInstanceAtDepth(i));
// on efface tous les clips issus des scènes précédentes pour avoir un écran propre
}
gotoSceneAndPlay("preloader", 1);
// on retourne à la première scène du jeu
}
function version() {
// si la variable _global.version a pour valeur "1.00", alors la commande du menu aura pour nom "Version 1.00"
// le numéro de la version est indiqué à titre informatif : cliquer dessus n'a aucun effet
}
_root.menu = MENUPERSO;

Ce qui nous donne ceci :

Prochaine étape : Création du Preloader !

1 commentaire: