phobiahz
Messages postés12Date d'inscriptiondimanche 21 décembre 2003StatutMembreDernière intervention28 octobre 2008
-
27 oct. 2008 à 10:29
phobiahz
Messages postés12Date d'inscriptiondimanche 21 décembre 2003StatutMembreDernière intervention28 octobre 2008
-
28 oct. 2008 à 15:34
Bonjour je cherche à reproduire cet effet : http://www.highlife.fr/#salon-1 à savoir l'effet sur lequel la TV, les canapés etc bougent en fonction du mouvement de la souris.
J'ai un début de réponse avec une source de diaporama qui défile selon
le sens du mouvement de la souris, mais le problème est que justement
le défilement se fait à l'infini.
cs_Girou
Messages postés1203Date d'inscriptionlundi 10 mars 2003StatutMembreDernière intervention23 juillet 20092 28 oct. 2008 à 11:09
Salut,
pour chacun de tes clips tu définis une valeur de déplacement latérale maximale
et une position x initiale
monClip1.deplacementMax=100 // = 100 pixels a gauche et à droite
monClip2.deplacementMax=75
monClip3.deplacementMax=50
monClip1.positionInitiale=500
monClip2.positionInitiale=525
monClip3.positionInitiale=475
//tu définis une variable qui contient la moitié de la taille de ton animation
var demiEcran:Number=1000/2 // si ton anim fait 1000 pixels de largeur
//ensuite à chaque mouvement de souris tu lances une fonction
var mouseListener:Object = newObject();
mouseListener.onMouseMove = function(){{
// selon la position de la souris
// définition du pourcentage de mouvement
var pourcent:Number=0
var posSouris:Number=_xmouse
if (posSouris<demiEcran){
pourcent=-((demiEcran-posSouris)/demiEcran)
}else{
pourcent=((posSouris-demiEcran)/demiEcran)
}
// ensuite on applique ce pourcentage de déplacement a tous les clips
monClip1._x=
monClip1.positionInitiale+Math.round(monClip1.deplacementMax*pourcent)
monClip2._x=
monClip2.positionInitiale+Math.round(monClip2.deplacementMax*pourcent)
monClip3._x=
monClip3.positionInitiale+Math.round(monClip2.deplacementMax*pourcent)
}
phobiahz
Messages postés12Date d'inscriptiondimanche 21 décembre 2003StatutMembreDernière intervention28 octobre 2008 28 oct. 2008 à 12:10
Bonjour, merci pour ta réponse.
J'ai donc mis le code que tu m'a donné sur la 1ere frame, j'ai crée 3 autres calques contenant chacun un clip avec comme nom d'occurence monClip1 , 2 et 3.
Lorsque je lance l'animation j'ai d'abord une erreur à la ligne 13 :
var mouseListener:Object = newObject();
mouseListener.onMouseMove = function(){{
il semble qu'il y ait un { en trop i la fin de commande, j'en ai dont retiré un.L'animation se lance plus d'erreur mais rien ne se passe aucun clip de bouge, tu vois d'ou ca peut venir ?
phobiahz
Messages postés12Date d'inscriptiondimanche 21 décembre 2003StatutMembreDernière intervention28 octobre 2008 28 oct. 2008 à 14:03
Ok ca fonctionne !!!! Merci !!! Dernier petit truc a te demander, j'aimerais que le mouvement des clips suivent une sorte d'acceleration/décéleration , je pense qu'il doit y avoir une histoire de division quelque part pour avoir cet effet...
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Girou
Messages postés1203Date d'inscriptionlundi 10 mars 2003StatutMembreDernière intervention23 juillet 20092 28 oct. 2008 à 15:00
Hum,
non, vu le script que je t'ai proposé, les clip sont positionné 'instantanément' sans ralenti ou accéleration.
Pour cela tu doit plutot passer par des Tweens qui possedes ce type de fonction (accéleration/ranelenti) mais il faudra sérieusement revoir le script alors.
Sinon, simplement pour avoir un petit effet on peut jouer avec la fonction x² mais le suis pas sur que c'est cela que tu envisages
remplace la fonction par celle-ci
mouseListener.onMouseMove = function(){
var pourcent:Number=0
var posSouris:Number=_xmouse
if (posSouris<demiEcran){
pourcent=-((demiEcran-posSouris)/demiEcran)/10
}else{
pourcent=((posSouris-demiEcran)/demiEcran)/10
}