|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Inscription : septembre 2004 Messages : 29 ![]() |
Au sujet des fonctions action-script 'OnMouse'.
J'ai rencontré un problême de hiérarchie. Voici un exemple : Je place un MovieClip que je nomme "parent", j'y insère une sous-MovieClip que je nomme "enfant". Dans "parent" je place onRollOut = fonction{<instructions;>} Dans "enfant" je place onRollOver = fonction{<instructions;>} Résumé : . . . . MovieClip "parent" => parent.onRollOut=function( ){<affiche dans un premier texte le mot "parent>} . . . . . . . |---- MovieClip "enfant => enfant.onRollOver=function(){<afficher dans un second texte le mot "enfant">} Résultat : lors du survole 'enfant, le texte 'enfant' ne s'affiche pas (dans le texte réservé à enfant). Le MovieClip 'Parent' semble cacher "enfant" à la souris. Je croyais qu'il n'y avait pas de solution à cela Merci d'avance. Destrumel |
|
|
00
|
|
|
#2 |
|
Membre confirmé
![]() Inscription : juillet 2006 Messages : 253 ![]() |
Bonjour,
Tu fais le mélange entre la souris, qui est un objet, et le bouton, qui est un autre objet. Et cela est applicable dès F5, puisque nous reprenons^partiellement le fil d'une autre discussion. Dans ton cas du disposes d'un objet nommé "parent". tu lui applique le code parent.onRollOut=... pour son enfant, tu lui dis un autre code, no problemo toujours. enfant.onRollOver... Là tu constate, je te cite : Le MovieClip 'Parent' semble cacher "enfant" à la souris hé oui, c'est confirmé, à compter du moment où ton clip "parent" prend la priorité de profondeur sur son objet "enfant". Plus précisément "parent" contient "enfant", de fait en pure théorie, parent contient enfant donc la priorité du code se fait sur "parent" et non "enfant" puisque le parent.onparent.onRollOut signifie que l'enfant EST présent. Encore une histoire de famille ça. Pour ma part j'aurais inversé, ce qui me semble plus logique dans le cadre d'un menu , je pense : parent.onRollOver et : enfant.onRollOut. Bien à toi. |
|
|
00
|
|
|
#3 |
|
Membre confirmé
![]() Inscription : juillet 2006 Messages : 253 ![]() |
complément.
j'ai oublié un truc peut être , Considère au niveau compréhension flash un bouton comme un équivalent d'un movieClip auquel on associe un enterFrame ( dur d'usine ) avec la position de la souris. En conséquence il faut utiliser un movieClip.hitTest(...). Si c'est "true" tu es dessus , si c'est "false" tu n'es pas dessus. On fait la même chose en flash6 avec un MovieClip et Mouse.Show et Mouse.Hide, une fois les conditions "true/false" résolues. Bien à toi. |
|
|
00
|
|
|
#4 | ||
|
Futur Membre du Club
![]() Inscription : septembre 2004 Messages : 29 ![]() |
Bonsoir,
Citation:
Citation:
Merci pour tes explications. Destrumel PS : OK, j'ai lu le HitTest(), malheureusement, il faudrait aussi que je sache si, à la position de la souris, mon MovieClip est caché un autre objet. |
||
|
|
00
|
|
|
#5 |
|
Membre émérite
![]() ![]() Étudiant Inscription : décembre 2003 Messages : 916 ![]() |
Salut,
La priorité du code, c'est la hiérarchie dans laquelle est exécuté le code : du clips le plus haut (le _root) au plus bas. Le problème étant que dans Flash 8, la gestion événementielle (srutout pour la souris) est mal fait et de ce fait si ton clip parent à une action onXXX (relative à la souris), les enfants ne reçevront pas l'événement Notez que ceci a été complètement chamboulé en AS3 et que maintenant grâce au BubbleEvent, tout cela est parfaitement géré @++ |
|
|
00
|
|
|
#6 | |||
|
Futur Membre du Club
![]() Inscription : septembre 2004 Messages : 29 ![]() |
Citation:
Je ne comprends pas bien. Citation:
Citation:
1 - Est-ce que l'AS3 fonctionne sur Linux, 2 - où puis-je trouver des infos sur le 'BubbleEvent' et le repérage souris( Merci de votre aide. Phildes |
|||
|
|
00
|
|
|
#7 | ||
|
Membre émérite
![]() ![]() Étudiant Inscription : décembre 2003 Messages : 916 ![]() |
Salut,
Citation:
- le BubbleEvent, tu trouveras des informations sur le le blog de petepx, celui d'ekameleon et encore à plein d'endroit Citation:
@++ |
||
|
|
00
|
|
|
#8 | ||||
|
Futur Membre du Club
![]() Inscription : septembre 2004 Messages : 29 ![]() |
Citation:
je croyais sottement que la version 8 n'était pas compatible Linux, mais la 8.5 le serait... (La 8.5 Sinon, j'avais sottement lu ceci http://www.media-box.net/index.php/2...r-9-pour-linux Citation:
Citation:
Citation:
Merci de votre aide je vais essayer de touver ça. Destrumel |
||||
|
|
00
|
|
|
#9 | |
|
Futur Membre du Club
![]() Inscription : septembre 2004 Messages : 29 ![]() |
Citation:
http://livedocs.macromedia.com/flex/...27.html#118998 Je me plonge là-dedans. je pense que Falsh est en train de remonter très très vite sont retard Merci beaucoup pour votre aide. Phildes |
|
|
|
00
|
|
|
#10 | |
|
Membre émérite
![]() ![]() Étudiant Inscription : décembre 2003 Messages : 916 ![]() |
Salut,
Citation:
@++ |
|
|
|
00
|
|
|
#11 |
|
Futur Membre du Club
![]() Inscription : septembre 2004 Messages : 29 ![]() |
Bonsoir,
D'après ce que j'ai compris le balayage du Bubbling ne s'arrète pas quand il a trouvé le 1er élément pointé par la souris. J'ai vu qu'il fallait que la pièce pointée indique d'arrêter le balayage. Il n'y a pas de moyen automatique pour arrêter le balayge au 1er composant trouvé ? (Ensuite on remonte le Bubbling et c'est terminé) Phildes |
|
|
00
|
|
|
#12 |
|
Membre émérite
![]() ![]() Étudiant Inscription : décembre 2003 Messages : 916 ![]() |
Salut,
regarde du coté de la méthode cancel de l'événement... maintenant si l'événement n'est pas "cancelisable", alors ce n'est pas possible. Mais pourquoi cela te gène-t-il ? @++ |
|
|
00
|
|
|
#13 | ||
|
Futur Membre du Club
![]() Inscription : septembre 2004 Messages : 29 ![]() |
Bonjour,
Citation:
Même si cette piste semble mener à une impasse, il était important de la suivre : "Cancelling the default behavior has no effect on the progress of an event object through the event flow" Citation:
Il faut vérifier les pièces qui passent au dessus des autres, et les cachent ainsi à la souris, ' ---------------------- Exemple : l'anim comporte un menu et d'autres pièces. Une de ses pièces survole mon menu. Pour le Wysiwyg, la souris pointera sur la pièce-qui-survole' et non sur le menu (puisqu'il est 'caché' par une autre pièce) A priori, dans une animation, toutes les pièces peuvent survoler. En conséquence, il faudrait mettre 'Event.stopPropogation()' dans toutes les pièces. ----------------------- Si le comportement (arrêt-automatique-à-la-1ère-occurence-rencontrée) n'est pas encore intégré à Flash, ce n'est pas très grave. Cela ne demande que peu de modification - un flag qui fait remonter le bubbling + arrêter le balayage. Et enfin, pour être nickel, proposer à l'utilisateur de choisir le comportement par défaut qu'il souhaite : "Wysiwyg" ou ""pièces-transparente-à-souris" ---------------------- Avec le bubbling, Falsh a fait le plus gros du travail. C'est dommage de s'arrêter si près du but Si ça l'option "arrêt-automatique-à-la-première-occurence-valide" n'est pas encore implémenté dans Flash, on peut peut-être essayer de leur transmettre l'idée. Pour un tout petit investissemnt, Ca évite de traîner une casserole (A ce niveau, si un géant de l'informatique se réveille et cherche à placer un éditeur concurrent, chaque détail peut compter) ------------------------ Existe-t-il un moyen officiel pour transmettre cette suggestion (une sorte de boîte-à-idées) chez Adobe ? Rappel des idées : 1 - Option pour les évenement suivant le bubbling : arrêt-automatique-à-la-première-occurence-valide (objectif : se conformer au Wysiwyg) 2 - Option par défaut pour toute l'anim, proposée à l'utilisateur : "respect du Wyswiwyg" ou "pièces transparentes à la souris" (objectif : laisser le choix à l'utilisateur, plutôt que la contrainte) Merci de ton aide. J'ai enfin pu réellement avancer dans ce problème de reconnaissance souris dans Flash. Destrumel |
||
|
|
00
|
|
|
#14 |
|
Membre émérite
![]() ![]() Étudiant Inscription : décembre 2003 Messages : 916 ![]() |
Salut,
mmmh je ne peux pas vraiment t'aiguiller comme ça, je n'ai pas encore assez fouiné la-dedans. Mais par contre tu peux trouver une solution de rechange : tu crée un Event qui a une propriét isCanceled() et si oui, alors dans tes écouteurs, tu ne fait rien non ? Sinon pour les suggestions, je pense qu'il faut aller sur les forums adobe @++ |
|
|
00
|
|
|
#15 |
|
Membre confirmé
![]() Inscription : juillet 2006 Messages : 253 ![]() |
Bonjour,
[QUOTE=thecaptain] la gestion événementielle (srutout pour la souris) est mal fait et de ce fait si ton clip parent à une action onXXX (relative à la souris), les enfants ne reçevront pas l'événement QUOTE] La gestion, évènementielle ou séquentielle, fonctionne parfaitement autant pour la souris que pour le reste. Ce n'est q'une question d'organisation, et là seuls le papier et le crayon peuvent aider. Bien à toi |
|
|
00
|
|
|
#16 | ||
|
Membre émérite
![]() ![]() Étudiant Inscription : décembre 2003 Messages : 916 ![]() |
Citation:
Quant au papier-crayon, je suis entièrement d'accord, pour faire quelque chose de professionnel, c'est indispensable ! @++ |
||
|
|
00
|
|
|
#17 |
|
Futur Membre du Club
![]() Inscription : septembre 2004 Messages : 29 ![]() |
Bonsoir,
Pour moi, ce sujet est [résolu] Merci très sincèrement à chacun de vous, tout spécialement à aorgerit et Thecaptain, tu temps que vous avez accordé à me répondre et à m'aider. Je repars avec une foule d'information. Tout ce que j'attendais depuis 5 ans. Je vais suivre ton conseil TheCaptain. Avec tous mes voeux pour un bel avenir pour Flash Destrumel |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com