KEN_OH
Messages postés3Date d'inscriptionmercredi 6 décembre 2006StatutMembreDernière intervention 6 décembre 2008
-
4 déc. 2008 à 14:57
barockeuse
Messages postés23Date d'inscriptionlundi 24 mars 2008StatutMembreDernière intervention30 janvier 2011
-
6 oct. 2009 à 21:42
j'ai vraiment fait trop de recherche avant de poser ma question sur ce forum.
bref voila mon problème :
je suis entrain de crée un site web qui contient un barre en bas ou lorsque on met la souris dessus elle affiche une zone ou il y a un contact et projet futured.
j'explique plus le concept : cette barre est un clip que j'ai ajoutée deux EventListener : un MOUSE_OVER et un MOUSE_OUT . dans ce même clip il y a le clip de contact et un clip de futured.
PRROBLEME : Lorsque je passe le souris en dessus du clip j'ai l'animation et la barre s'ouvre MAIS lorsque je passe sur un clip Child ( contact et futured ) c'est comme si j'ai fait un MOUSE_OUT de la zone malgrè que je suis sur le même clip.
//Initialisation
var posnews:int = 0;
var depl:int;
stage.scaleMode="noScale";
stage.align="T";
init();
//
stage.addEventListener(Event.RESIZE, immoresize);
news.addEventListener(MouseEvent.MOUSE_OVER, opennews,false,0,true); //news est le nom de la barre
function init():void
{
news.x=-(Math.round((stage.stageWidth-1050)/2));
news.y=500;
menu.x=-(Math.round((stage.stageWidth-1050)/2));
menu.y=-27;
menu.nav.x=stage.stageWidth - 340;
depl = stage.stageHeight - 400;
}
function opennews(e:Event):void
{
if (stage.stageHeight<960) {
news.removeEventListener(MouseEvent.MOUSE_OVER, opennews);
var tw = new Tween(news, "y", Bounce.easeOut, 500, depl, 1.5, true);
tw.addEventListener(TweenEvent.MOTION_FINISH, onFinish);
}
}
function closenews(e:Event):void
{
if (stage.stageHeight<960) {
news.removeEventListener(MouseEvent.MOUSE_OUT, closenews);
var tw = new Tween(news, "y", Bounce.easeOut, depl, 500, 1.5, true);
tw.addEventListener(TweenEvent.MOTION_FINISH, onFinish1);
}
}
function onFinish(e:TweenEvent):void {
posnews=1;
news.addEventListener(MouseEvent.MOUSE_OUT, closenews,false,0,true);
}
function onFinish1(e:TweenEvent):void {
news.addEventListener(MouseEvent.MOUSE_OVER, opennews,false,0,true);
posnews=0;
}
//le code est un peut en desordre avec des instruction en trop car j'ai fait plusieur essais et c'est le plus stable.
meci pour vos reponses !
cs_inaden
Messages postés618Date d'inscriptionmercredi 4 avril 2007StatutMembreDernière intervention27 août 20102 4 déc. 2008 à 17:42
Salut,
pour ma part je galère avec l'as3, mais j'ai vu un truc qui concernait ce type de problème (ou approchant) et il falait cibler le clip qu'on voulait désactiver avec mouseChildren = false;
Donc pour toi contact.mouseChildren = false et futured... à moins que ce soit le contraire ou que cela ne fonctionne pas du tout !
Bonne chance
KEN_OH
Messages postés3Date d'inscriptionmercredi 6 décembre 2006StatutMembreDernière intervention 6 décembre 2008 5 déc. 2008 à 11:59
Merci pour votre réponse mais en utilisant le mouseChildren = false; je peut plus crée des boutons dans le clip Child (contact ou futured ) ce qui est nécessaire pour passer le formulaire de contact ou autre .
cs_inaden
Messages postés618Date d'inscriptionmercredi 4 avril 2007StatutMembreDernière intervention27 août 20102 5 déc. 2008 à 14:10
Désolé, ce doit être une question "d'écouteur"... je sais pas comment, mais il doit être possible de bloquer les choses fonction de la position de ta souris., du genre, si ma souris est en dessous de telle position, mon truc s'active, si elle est au dessus, mon truc se désactive.
Je sais, ça te dis pas comment faire, mais c'est peut-être une autre piste.
crackter
Messages postés401Date d'inscriptionmercredi 12 novembre 2003StatutMembreDernière intervention31 janvier 2010 6 déc. 2008 à 12:26
pour résoudre ton soucis, il y a plusieurs manière, mais une des plus simples reste quand meme le fait de gérer un autre clip sur ta scène, je m'explique :
image que les X sont un clip qui correspondent au fond de ta scène et les O ton clip de news, il suffirait de mettre les évènements MOUSE_OVER sur les O pour ouvrir les news et MOUSE_OVER sur les X pour fermer les news. le MOUSE_OVER de news s'efface quand tu survol les O et revient quand tu survol les X.
Vous n’avez pas trouvé la réponse que vous recherchez ?
KEN_OH
Messages postés3Date d'inscriptionmercredi 6 décembre 2006StatutMembreDernière intervention 6 décembre 2008 6 déc. 2008 à 12:59
XD
Merci beaucoup c'est une bonne idée, je l'utilisais avant sous Macromedia Director car il y avait un conflit avec le MouseOut. je sais pas pourquoi je l'ai oublié .
re merci, je vais l'implémenter immédiatement.
j'ai eut par contre une autre idée voila un schéma avec des "O" , des "X" et des "="
"X" = scène principal
"O" = clip news
"=" = bordure du clip news
j'ai eut l'idée de faire un EventListener sur la scène principale (X) qui détecte la position de la souris puis je gère le deplacement de la barre news selon la position de la souris par rapport a la position Y du clip news : si la souris est en dessus je fait l'action RollOut sinon l'action du RollOver.
crackter
Messages postés401Date d'inscriptionmercredi 12 novembre 2003StatutMembreDernière intervention31 janvier 2010 6 déc. 2008 à 16:07
Oui ça peut être une autre idée, suivant le besoin derrière ça peut être même plus intéressant, après tout dépend du besoin :).
Sinon à savoir que l'écouteur écoute (woaa c'est magique ^^) chaque évènement d'après un dispatchEvent envoyé par l'objet en question, c'est à dire que le rollover est lancé moins souvent qu'un mousemove ou qu'un enterframe (normalement ) donc moins gourmand en ressources.
barockeuse
Messages postés23Date d'inscriptionlundi 24 mars 2008StatutMembreDernière intervention30 janvier 2011 6 oct. 2009 à 21:42
Je sais que je réponds un peu tard .. mais ça pourra servir à d'autres.
Il semble que ce soit le choix de la méthode.
Pour récapituler :
* MOUSER_OVER et MOUSE_OUT notifie chaque clip survolé par la souris, pères et fils ..
* ROLL_OVER et ROLL_OUT notifie uniquement le survol du clip écouté (indépendamment des clips à l'intérieur)
"L'événement rollOut a pour objet de simplifier le codage des comportements de survol des conteneurs d'objet d'affichage avec enfants. Lorsque la souris quitte la zone d'un objet d'affichage ou de l'un de ses enfants pour atteindre un objet qui ne fait pas partie de ses enfants, l'objet d'affichage distribue l'événement rollOut. Ce comportement diffère de celui de l'événement mouseOut, qui est envoyé lorsque la souris quitte la zone d'un objet enfant du conteneur d'objet d'affichage, même si la souris reste au-dessus d'un autre objet enfant du conteneur d'objet d'affichage."