Pb barre de navigation et navigation par clavier

imankalis Messages postés 14 Date d'inscription mardi 27 avril 2004 Statut Membre Dernière intervention 17 juin 2005 - 31 mai 2005 à 12:26
imankalis Messages postés 14 Date d'inscription mardi 27 avril 2004 Statut Membre Dernière intervention 17 juin 2005 - 1 juin 2005 à 20:41
bonjour,



Je débute en flash et pour une association, je dois transformer un powerPoint en Flash...

Intro: la structure schématique de mon Flash



Conteneur_chapitres_mc

-> Chapitre1_mc

->Diapo1_mc

-> image1: apparition du titre.

-> image2: apparition de l'image.

-> image3: apparition d'un commentaire.

->Diapo2_mc

...

-> Chapitre2_mc

...



Pb 1: Navigation au clavier


Je cherche à optimiser ma programation en créeant une fonction générale
de navigation pour éviter la répétition de code sur chaque image.



voici ma fonction:

----------------------------

function myOnKeyDown() {

if (Key.isDown(Key.RIGHT)) {

this.nextFrame();

}



} else if (Key.isDown(Key.LEFT)) {

this.prevFrame();

}

}

var monEcouteur = new Object();

monEcouteur.onKeyDown = myOnKeyDown;

Key.addListener(monEcouteur);

------------------------------



Mon pb pour éviter:

_root.Conteneur_chapitres.Chapitre1.Diapo1.nextFrame();

_root.Conteneur_chapitres.Chapitre1.Diapo2.nextFrame();

...

_root.Conteneur_chapitres.Chapitre2.Diapo1.nextFrame();

...



j'aimerais n'avoir que chemin.nextFrame() en utilisant une boucle for avec i et j. (tel que Chapitrei, Diapoj)



comment concaténer un string avec le résultat d'une variable?

j'ai essayé avec + ou add...mais ça ne marche pas...



chemin = "_root.Conteneur_chapitres.Chapitre" + i + ".Diapo" + j ;

trace(chemin); // _root.Conteneur_chapitres.Chapitre1.Diapo1 -> ok!

chemin.nextFrame();

/*marche pas !

alors que:

_root.Conteneur_chapitres.Chapitre1.Diapo1.nextFrame();

marche !

*/



Pb 2: Navigation avec la barre de navigation


j'ai crée une barre de menu qui se charge une seule fois pour éviter
d'alourdir l'animation en mettant des occurrences de boutons à chaque
image...



> effet d'animation suivant (ex: apparition du titre)

>> diapo suivante.

< pour reculer d'un effet d'animation

<< diapo précedente

O Home,...



Pour faire court existe-t-il un exemple de barre de navigation programmée?



Merci pour votre aide !

3 réponses

cs_djagger Messages postés 536 Date d'inscription lundi 5 mai 2003 Statut Membre Dernière intervention 29 janvier 2009 1
31 mai 2005 à 12:46
Salut !

PB1 :

utilise la fonction eval() qui fai le lien entre un nom de variable et sa valeur :

eval(chemin).nextFrame();

pour le PB2 je vois pas trop, a mon avis faudra ke tu la fasse toi meme !!

allé a+++
0
imankalis Messages postés 14 Date d'inscription mardi 27 avril 2004 Statut Membre Dernière intervention 17 juin 2005
31 mai 2005 à 14:19
eval(chemin)

ok ça marche!



Mais apparemment j'vois que je peux encore optimiser ma programmation
c'est à dire que je ne suis pas obligé de faire 2 fonctions, une qui
gère la navigation au clavier et l'autre gérer par la barre de
navigation...



je suis donc preneur d'un exemple d'une barre de navigation et auquel je pourrais ajouter un raccourci clavier au bouton...

exemple: monBouton._accProps.shortcut = Key.RIGHT
0
imankalis Messages postés 14 Date d'inscription mardi 27 avril 2004 Statut Membre Dernière intervention 17 juin 2005
1 juin 2005 à 20:41
Bonjour,

Est-ce que quelqu'un peut m'expliquer la notion de portée des fonctions.

Car j'ai créer une fonction "avancer" pour la barre de navigation qui se cache automatiquement...

mais j'aimerais aussi utiliser cette fonction pour la navigation au clavier sans pour autant la réecrire...

pas parce que j'ai la flemme mais pour optimiser un minimum...

Je me suis intérressé à la technique des shortcuts pour les boutons...le pb c'est que ça marche que si le bouton est visible...

ce qui n'est pas le cas puisque ma barre se cache automatiquement...



comment faire pour que cette fonction soit globale (un peu comme les variables)

suis-je obliger de créer un script .as à part et de l'appeller quand j'en ai besoin? J'ai vu que ça se faisait

j'ai essayé de mettre cette fonction au level0 et de l'appeller à un niveau level1 et inversement mais ça ne marche pas...



bref comment faites vous pour utiliser une fonction dans différent level sans pour autant la réecrire à chaque fois?
0
Rejoignez-nous