

#1 Laura
Posté 08 June 2014 - 11:24 AM
Bonjour,
Voici en deux mots ce que j'essaie de faire:
J'ai une navigation composée de carrés de couleur tous collés les uns aux autres. Au survol, le but est qu'ils s'agrandissent, en passant un peu sur les autres avec du texte qui s'affiche à l'intérieur.
Le problème bien sûr, c'est que au survol, chacun de ces carrés doit se mettre au premier plan, et au Mouse out devrait reprendre son état initial.
Avec le code setChildIndex et un current target (il y a 11 carrés à coder):
carre_violet.addEventListener(MouseEvent.MOUSE_OVER, survolnavig)
carre_bleu.addEventListener(MouseEvent.MOUSE_OVER, survolnavig)
carre_vertfonce.addEventListener(MouseEvent.MOUSE_OVER, survolnavig)
carre_fonce.addEventListener(MouseEvent.MOUSE_OVER, survolnavig)
carre_rougefonce.addEventListener(MouseEvent.MOUSE_OVER, survolnavig)
carre_rose.addEventListener(MouseEvent.MOUSE_OVER, survolnavig)
carre_jaune.addEventListener(MouseEvent.MOUSE_OVER, survolnavig)
carre_rouge.addEventListener(MouseEvent.MOUSE_OVER, survolnavig)
carre_brun.addEventListener(MouseEvent.MOUSE_OVER, survolnavig)
carre_blanc.addEventListener(MouseEvent.MOUSE_OVER, survolnavig)
carre_vert.addEventListener(MouseEvent.MOUSE_OVER, survolnavig)
function survolnavig (evt:MouseEvent) {
setChildIndex(DisplayObject(evt.currentTarget),this.numChildren-1);
evt.currentTarget.scaleX=1.5;
evt.currentTarget.scaleY=1.5;
evt.currentTarget.play(); //c'est pour le texte qui s'affiche
}
carre_violet.addEventListener(MouseEvent.MOUSE_OUT, survoloutnavig)
carre_bleu.addEventListener(MouseEvent.MOUSE_OUT, survoloutnavig)
carre_vertfonce.addEventListener(MouseEvent.MOUSE_OUT, survoloutnavig)
carre_fonce.addEventListener(MouseEvent.MOUSE_OUT, survoloutnavig)
carre_rougefonce.addEventListener(MouseEvent.MOUSE_OUT, survoloutnavig)
carre_rose.addEventListener(MouseEvent.MOUSE_OUT, survoloutnavig)
carre_jaune.addEventListener(MouseEvent.MOUSE_OUT, survoloutnavig)
carre_rouge.addEventListener(MouseEvent.MOUSE_OUT, survoloutnavig)
carre_brun.addEventListener(MouseEvent.MOUSE_OUT, survoloutnavig)
carre_blanc.addEventListener(MouseEvent.MOUSE_OUT, survoloutnavig)
carre_vert.addEventListener(MouseEvent.MOUSE_OUT, survoloutnavig)
function survoloutnavig (evt:MouseEvent) {
evt.currentTarget.scaleX=1;
evt.currentTarget.scaleY=1;
}
Ou alors en faisant une fonction mouse over et une mouse out avec un simple addChild, cela marche également sur l'écran où je me trouve.
Le problème que je rencontre, c'est qu'une fois la fonction mouse over activée une fois, ils se retrouvent au premier plan partout, même sur des écrans où ils n'existent pas.
J'ai essayé de redéfinir les plans pour chaque élément de mon interface et de faire sur les autres écrans un removeChildAt(-1), mais c'est un travail de titan et ça remet en question tout le code déjà mis en place (fonctions qui fonctionnent plus, objets nuls etc)
Donc, y a-t'il un moyen pour dire à un clip de reprendre son état initial? Ou si vous avez une autre idée, je prends tout!
C'est un travail d'examen à rendre dans les jours qui viennent alors je suis un peu désespérée! ^^"
Merci pour votre aide!
Voici en deux mots ce que j'essaie de faire:
J'ai une navigation composée de carrés de couleur tous collés les uns aux autres. Au survol, le but est qu'ils s'agrandissent, en passant un peu sur les autres avec du texte qui s'affiche à l'intérieur.
Le problème bien sûr, c'est que au survol, chacun de ces carrés doit se mettre au premier plan, et au Mouse out devrait reprendre son état initial.
Avec le code setChildIndex et un current target (il y a 11 carrés à coder):
carre_violet.addEventListener(MouseEvent.MOUSE_OVER, survolnavig)
carre_bleu.addEventListener(MouseEvent.MOUSE_OVER, survolnavig)
carre_vertfonce.addEventListener(MouseEvent.MOUSE_OVER, survolnavig)
carre_fonce.addEventListener(MouseEvent.MOUSE_OVER, survolnavig)
carre_rougefonce.addEventListener(MouseEvent.MOUSE_OVER, survolnavig)
carre_rose.addEventListener(MouseEvent.MOUSE_OVER, survolnavig)
carre_jaune.addEventListener(MouseEvent.MOUSE_OVER, survolnavig)
carre_rouge.addEventListener(MouseEvent.MOUSE_OVER, survolnavig)
carre_brun.addEventListener(MouseEvent.MOUSE_OVER, survolnavig)
carre_blanc.addEventListener(MouseEvent.MOUSE_OVER, survolnavig)
carre_vert.addEventListener(MouseEvent.MOUSE_OVER, survolnavig)
function survolnavig (evt:MouseEvent) {
setChildIndex(DisplayObject(evt.currentTarget),this.numChildren-1);
evt.currentTarget.scaleX=1.5;
evt.currentTarget.scaleY=1.5;
evt.currentTarget.play(); //c'est pour le texte qui s'affiche
}
carre_violet.addEventListener(MouseEvent.MOUSE_OUT, survoloutnavig)
carre_bleu.addEventListener(MouseEvent.MOUSE_OUT, survoloutnavig)
carre_vertfonce.addEventListener(MouseEvent.MOUSE_OUT, survoloutnavig)
carre_fonce.addEventListener(MouseEvent.MOUSE_OUT, survoloutnavig)
carre_rougefonce.addEventListener(MouseEvent.MOUSE_OUT, survoloutnavig)
carre_rose.addEventListener(MouseEvent.MOUSE_OUT, survoloutnavig)
carre_jaune.addEventListener(MouseEvent.MOUSE_OUT, survoloutnavig)
carre_rouge.addEventListener(MouseEvent.MOUSE_OUT, survoloutnavig)
carre_brun.addEventListener(MouseEvent.MOUSE_OUT, survoloutnavig)
carre_blanc.addEventListener(MouseEvent.MOUSE_OUT, survoloutnavig)
carre_vert.addEventListener(MouseEvent.MOUSE_OUT, survoloutnavig)
function survoloutnavig (evt:MouseEvent) {
evt.currentTarget.scaleX=1;
evt.currentTarget.scaleY=1;
}
Ou alors en faisant une fonction mouse over et une mouse out avec un simple addChild, cela marche également sur l'écran où je me trouve.
Le problème que je rencontre, c'est qu'une fois la fonction mouse over activée une fois, ils se retrouvent au premier plan partout, même sur des écrans où ils n'existent pas.
J'ai essayé de redéfinir les plans pour chaque élément de mon interface et de faire sur les autres écrans un removeChildAt(-1), mais c'est un travail de titan et ça remet en question tout le code déjà mis en place (fonctions qui fonctionnent plus, objets nuls etc)
Donc, y a-t'il un moyen pour dire à un clip de reprendre son état initial? Ou si vous avez une autre idée, je prends tout!
C'est un travail d'examen à rendre dans les jours qui viennent alors je suis un peu désespérée! ^^"
Merci pour votre aide!
#2
Posté 08 June 2014 - 13:51 PM
Salut,
Tu as essayé avec evt.target au lieu de evt.currentTarget ?
Sinon envoie un petit FLA simplifié pour montrer l'erreur et on regardera.
Tu as essayé avec evt.target au lieu de evt.currentTarget ?
Sinon envoie un petit FLA simplifié pour montrer l'erreur et on regardera.
Tutoriels AS3 >> Pong - Taquin - Memory - Tic Tac Toe - Pendu - Snake - Proximity - Cascade - Démineur - Bejeweled - Tetris - Collisions - Raycasting - Plateformes - Mode7 - Starfield - Frogger - Space Invader - Blackjack - Sudoku - Asteroids - Video Poker - Rogue Like (partie 1) - Rogue Like (partie 2) - Mastermind - Rendus 2D - Flixel - Auditorium - Particules - Pacman - Doodle Jump - Course de voiture
Tutoriels Javascript >> Pong - Taquin - Memory - Tic Tac Toe - Pendu - Snake - Proximity - Cascade - Démineur - Bejeweled - Tetris - Collisions -
Jeux perso >> Mes jeux
Tutoriels Javascript >> Pong - Taquin - Memory - Tic Tac Toe - Pendu - Snake - Proximity - Cascade - Démineur - Bejeweled - Tetris - Collisions -
Jeux perso >> Mes jeux
#3
Posté 08 June 2014 - 14:35 PM
Voilà je me suis connectée pour envoyer les fichiers.
J'ai essayé avec target et il y a un fla avec cet essai mais j'ai des erreurs.
Sinon il y a le currentTarget qui "marche", mais qui pose problème lorsqu'on retourne à l'accueil.
Merci beaucoup!
J'ai essayé avec target et il y a un fla avec cet essai mais j'ai des erreurs.
Sinon il y a le currentTarget qui "marche", mais qui pose problème lorsqu'on retourne à l'accueil.
Merci beaucoup!
Fichier(s) joint(s)
#4
Posté 08 June 2014 - 15:09 PM
Salut,
Je viens de jeter un oeil rapidement, cas typique d'une mauvaise utilisation de Flash...
Pour faire simple, la timeline de Flash (IDE) c'est fait pour faire de l'animation, pas des sites ou des applications avec des menus, etc...
Si tu essayes de mélanger utilisation de la Timeline et création de menus et divers codes, tu risque fort d'aller dans le mur, et c'est ce qui se passe avec ton code.
Voici un exemple qui utilise la bibliothèque de Flash pour ranger tes objets, et uniquement du code pour gérer toute la mécanique.
Pour bien faire, il aurait aussi fallu placer les carrés de la navigation avec du code (et pas à la main dans le clip), mais j'ai la flemme de tout refaire, à toi de gérer ça à partir de la base que je t'envoie.
Les trois objets utiles que j'utilise sont dans la bibliothèque (tout le reste a été collé dans un dossier "a ranger").
Ces trois objets sont exportés pour AS (voir Liaison AS dans la biblio) ce qui permet de les utiliser avec le code.
Tout le code se trouve sur une seule frame, la première et la seule de tout le projet.
Bon courage.
Je viens de jeter un oeil rapidement, cas typique d'une mauvaise utilisation de Flash...
Pour faire simple, la timeline de Flash (IDE) c'est fait pour faire de l'animation, pas des sites ou des applications avec des menus, etc...
Si tu essayes de mélanger utilisation de la Timeline et création de menus et divers codes, tu risque fort d'aller dans le mur, et c'est ce qui se passe avec ton code.
Voici un exemple qui utilise la bibliothèque de Flash pour ranger tes objets, et uniquement du code pour gérer toute la mécanique.
Pour bien faire, il aurait aussi fallu placer les carrés de la navigation avec du code (et pas à la main dans le clip), mais j'ai la flemme de tout refaire, à toi de gérer ça à partir de la base que je t'envoie.
Les trois objets utiles que j'utilise sont dans la bibliothèque (tout le reste a été collé dans un dossier "a ranger").
Ces trois objets sont exportés pour AS (voir Liaison AS dans la biblio) ce qui permet de les utiliser avec le code.
Tout le code se trouve sur une seule frame, la première et la seule de tout le projet.
Bon courage.
Fichier(s) joint(s)
Tutoriels AS3 >> Pong - Taquin - Memory - Tic Tac Toe - Pendu - Snake - Proximity - Cascade - Démineur - Bejeweled - Tetris - Collisions - Raycasting - Plateformes - Mode7 - Starfield - Frogger - Space Invader - Blackjack - Sudoku - Asteroids - Video Poker - Rogue Like (partie 1) - Rogue Like (partie 2) - Mastermind - Rendus 2D - Flixel - Auditorium - Particules - Pacman - Doodle Jump - Course de voiture
Tutoriels Javascript >> Pong - Taquin - Memory - Tic Tac Toe - Pendu - Snake - Proximity - Cascade - Démineur - Bejeweled - Tetris - Collisions -
Jeux perso >> Mes jeux
Tutoriels Javascript >> Pong - Taquin - Memory - Tic Tac Toe - Pendu - Snake - Proximity - Cascade - Démineur - Bejeweled - Tetris - Collisions -
Jeux perso >> Mes jeux
#6
Posté 08 June 2014 - 15:19 PM
Le but est pas de critiquer, mais de te donner les bonnes bases de départ 
Plus tu va avancer dans ton projet et plus tu sera confronté à ce genre de problèmes, alors autant commencer tout de suite par les bonnes pratiques (sans même encore parler de POO).
Bon courage et n'hésites pas si tu bloque.

Plus tu va avancer dans ton projet et plus tu sera confronté à ce genre de problèmes, alors autant commencer tout de suite par les bonnes pratiques (sans même encore parler de POO).
Bon courage et n'hésites pas si tu bloque.
Tutoriels AS3 >> Pong - Taquin - Memory - Tic Tac Toe - Pendu - Snake - Proximity - Cascade - Démineur - Bejeweled - Tetris - Collisions - Raycasting - Plateformes - Mode7 - Starfield - Frogger - Space Invader - Blackjack - Sudoku - Asteroids - Video Poker - Rogue Like (partie 1) - Rogue Like (partie 2) - Mastermind - Rendus 2D - Flixel - Auditorium - Particules - Pacman - Doodle Jump - Course de voiture
Tutoriels Javascript >> Pong - Taquin - Memory - Tic Tac Toe - Pendu - Snake - Proximity - Cascade - Démineur - Bejeweled - Tetris - Collisions -
Jeux perso >> Mes jeux
Tutoriels Javascript >> Pong - Taquin - Memory - Tic Tac Toe - Pendu - Snake - Proximity - Cascade - Démineur - Bejeweled - Tetris - Collisions -
Jeux perso >> Mes jeux
#7
Posté 08 June 2014 - 15:23 PM
Oui oui je le sais! ^^ Je disais ça juste parce que je suis débutante et que j'ai appris les bases dans une école d'art où on nous demande de faire ce genre de choses, mais je n'ai pas appris à gérer la bibliothèque comme ça, etc.
Là je dois rendre le projet (dont plein d'autres supports) jeudi donc je n'aurai pas le temps de tout refaire bien comme tu me l'as montré, d'autant plus que ça demande des connaissances que je n'ai vraiment pas.
Donc je vais essayer, pour cette fois, de faire un petit mix comme je peux et de repartir sur de bonnes bases pour les prochains travaux!
Merci en tout cas
Là je dois rendre le projet (dont plein d'autres supports) jeudi donc je n'aurai pas le temps de tout refaire bien comme tu me l'as montré, d'autant plus que ça demande des connaissances que je n'ai vraiment pas.
Donc je vais essayer, pour cette fois, de faire un petit mix comme je peux et de repartir sur de bonnes bases pour les prochains travaux!
Merci en tout cas

#8
Posté 08 June 2014 - 16:39 PM
Salut,
Tu n'es pas la première à poser ce genre de problématique suite à un devoir ou un projet à rendre alors que le prof ne leur a pas donné les clés pour faire les choses correctement. Certes, en école d'art on ne vous apprend pas forcément à programmer, mais dans ce cas là il ne faut pas demander à ses élèves de faire des choses qui relèvent de la programmation...
Bref, j'espère que tu va quand même te débrouiller pour arriver à tes fins, n'hésites pas si tu as d'autres questions.
Tu n'es pas la première à poser ce genre de problématique suite à un devoir ou un projet à rendre alors que le prof ne leur a pas donné les clés pour faire les choses correctement. Certes, en école d'art on ne vous apprend pas forcément à programmer, mais dans ce cas là il ne faut pas demander à ses élèves de faire des choses qui relèvent de la programmation...
Bref, j'espère que tu va quand même te débrouiller pour arriver à tes fins, n'hésites pas si tu as d'autres questions.
Tutoriels AS3 >> Pong - Taquin - Memory - Tic Tac Toe - Pendu - Snake - Proximity - Cascade - Démineur - Bejeweled - Tetris - Collisions - Raycasting - Plateformes - Mode7 - Starfield - Frogger - Space Invader - Blackjack - Sudoku - Asteroids - Video Poker - Rogue Like (partie 1) - Rogue Like (partie 2) - Mastermind - Rendus 2D - Flixel - Auditorium - Particules - Pacman - Doodle Jump - Course de voiture
Tutoriels Javascript >> Pong - Taquin - Memory - Tic Tac Toe - Pendu - Snake - Proximity - Cascade - Démineur - Bejeweled - Tetris - Collisions -
Jeux perso >> Mes jeux
Tutoriels Javascript >> Pong - Taquin - Memory - Tic Tac Toe - Pendu - Snake - Proximity - Cascade - Démineur - Bejeweled - Tetris - Collisions -
Jeux perso >> Mes jeux
Répondre à ce sujet

1 utilisateur(s) li(sen)t ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)