Forum Wisibility

WEB => Flash => Discussion démarrée par: squally le février 05, 2012, 20:21:03 pm

Titre: Problème neige qui tombe + bouton
Posté par: squally le février 05, 2012, 20:21:03 pm
Coucou,
je tiens à dire que je débute en flash/actionscript 3 est qu'il est probable que je ne comprenne pas tout >>.

alors j'ai suivis ce tuto pour crée des particules que j'ai facilement modifier pour le personnalisé au maximum. (http://www.wisibility.com/post/tombe-la-neige)
Problème ? C'est que sous ces particules, j'ai des boutons ayant des rollover, etc... et a chaque fois qu'une particules rentre en interaction avec la souris au niveau du bouton, elle prend forcement en compte le passage de la particule, arrête l'animation du rollover comme si je déplaçais la souris, et la reprend lorsque la particule s'éloigne, et c'est le seul tuto que j'ai trouver qui me fait ça, mais c'est surtout le plus simple que j'ai réussi à personnalisé ...
Alors je voulais vous demandez comment faire pour résoudre ce problème sans changer les grande ligne du code, ou du moins, si c'est possible ....

Merci de votre aide, et désolée si j'ai eu du mal à m'expliquer.
Titre: Re : Problème neige qui tombe + bouton
Posté par: RMistral (Wisi) le février 06, 2012, 11:10:54 am
Bonjour,

Ton problème est un problème de profondeur. Je m'explique : Lorsque tu déposes un premier MovieClip (MC) sur la scène,que se soit par le code (addChild) ou par un glissé déposé dans l'interface graphique,  celui ci est à la profondeur 0 le suivant à la profondeur 1 etc.. C'est comme les calques dans Photoshop, le calque le plus haut contient l'information la plus proche de l'utilisateur.

Pour que les flocons ne perturbent pas les boutons il faut donc ajouter les boutons en dernier comme çà ils sont devant et donc les flocons passent derrière.

Bon courage....

Titre: Re : Problème neige qui tombe + bouton
Posté par: squally le février 07, 2012, 15:26:18 pm
Coucou

Déjà merci pour la réponse ^^.

J'ai pas du tout comprendre ou tout bien expliquer niveau profondeur, désolée >>"
Actuellement, j'ai mis le code le plus derrière possible, en somme, c'est le premier en partant du bas de la liste.(ou le 1er calque de la liste, enfin, bref !). Par quel mystère de la nature du codage, les particules passent devant et sont pris en compte par le passage de la souris, et c'est justement pour ça que je pensais qu'il s'agissait d'un problème au niveau du code... Parce que techniquement, en terme de calque, elles devraient même pas être visible et passer sous les boutons, non ? Enfin, j'imagine que c'est écrit dans le codage mais ... Je débute quoi x)

Avant de rendre une explication étrange et encore plus flou qu'elle n'est ...
ou du moins la rendre flou pour les autres également x)...
Titre: Re : Problème neige qui tombe + bouton
Posté par: RMistral (Wisi) le février 08, 2012, 11:47:05 am
Bonjour,

Le concept est le suivant :

Les calques de l'interface graphique fonctionnent comme dans Photoshop (le plus bas contient l'information la plus lointaine de l'utilisateur). Si tu fais une animation uniquement dans l'interface graphique, tu as donc la maitrise de la disposition des éléments en faisant monter ou descendre les calques dans la pile.

La où c'est plus complexe c'est quand tu ajoutes du code. La position du calque contenant le code dans la pile n'a aucune influence sur l'affichage.

Par contre les instructions addClild ou addChlidAt elles vont influer sur la profondeur.

Premier cas :

j'ai sur la scène 1 MovieClip (MC) contenant un rond. Si je rajoute un calque au dessus du calque qui contient le rond et que je met sur la scène un MC contenant un carré, le carré est devant le rond.

Si je descend le calque contenant le carré sous le calque contenant le rond c'est le rond qui est devant

Second cas :


j'ai sur la scène 1 MovieClip (MC) contenant un rond. Si je rajoute un calque au dessus du calque qui contient le rond et que je met sur la scène un MC contenant un carré, le carré est devant le rond.

Maintenant en code j'ajoute un MC contenu dans la bibliothèque ayant comme nom de classe "Losange" et contenant un .... losange

// création d'une copie du symbole Losange en mémoire
var losange:Losange= new Losange()
//ajout sur la scène
addChild(losange)


le losange est maintenant devant le rond et devant le carré. il est au sommet de la pile. Le rond est à la profondeur 0, le carré à la profondeur 1 et le losange à la profondeur 2

Si je souhaite mettre mon losange entre le rond et le carré il faut donc que je l'ajoute à la profondeur 1 à la place du carré et le carré doit monter d'un niveau pour cela je vais écrire en code :

// création d'une copie du symbole Losange en mémoire
var losange:Losange= new Losange()
//ajout sur la scène à la profondeur 1
addChildAt(losange,1)



Bon courage.....