Makdoom
Messages postés9Date d'inscriptionsamedi 4 avril 2009StatutMembreDernière intervention11 mai 2010
-
11 mai 2010 à 12:49
Makdoom
Messages postés9Date d'inscriptionsamedi 4 avril 2009StatutMembreDernière intervention11 mai 2010
-
11 mai 2010 à 17:58
Bonjour,
J'ai récupéré une source sur le net mais qui ne fonctionne pas exactement comme je voudrais. Voici le code en question :
tout marche bien excepté le fait que le texte ne se met à défiler que si l'on passe la souris dessus, or moi je cherche a ce qu'il défile dès le chargement de la page web.
J'ai essayé de changer le "onEnterFrame" par du "onLoad", j'ai aussi essayé de remplacé ca par un setinterval mais rien n'y fait, sans la souris qui passe dessus, rien ne défile :/
Je ne connais rien a flash donc je suis assez vite dépassé ^^ si quelqu'un a la soluce, je suis a l'écoute ;)
dj_ouf
Messages postés221Date d'inscriptionvendredi 15 avril 2005StatutMembreDernière intervention 6 septembre 2011 11 mai 2010 à 17:05
onEnterFrame, c'est la fonction déclenché à chaque rafraichissement du flashplayer, donc autant de fois que de frames jouées par secondes. Par contre frame suppose une frame de la timeline, pas un objet.
Si tu as des problèmes de visibilité du clip, cela pourrait provenir du masque. Désactives le si tu veux en être sûr.
dj_ouf
Messages postés221Date d'inscriptionvendredi 15 avril 2005StatutMembreDernière intervention 6 septembre 2011 11 mai 2010 à 14:23
Salut
Tout se passe dans la fonction onEnterFrame :
var dy = Math.abs(this._ymouse-0.5*hauteur);
if (dy>0.5*hauteur) {vx vxmin+(vxmax-vxmin)*dy/Stage.height;} else {vx vxmin;}
this._x -= vx;
if (this._x<xLeft-largeur) {this._x = xRight;}
Si on traduit ça, on voit qu'il calcule la distance entre la position verticale de la souris (_ymouse) et la position verticale de monClip. Si cette distance est supérieure à la moitié de sa hauteur (if (dy>0.5*hauteur), alors on fait défiler, sinon il défile à la vitesse minimale définit, qui est ici "vxmin". Or "vxmin" est égal à 0 comme on peut le voir tout en haut du code, donc il te suffirait de le redéfinir à 5 par exemple pour voir qu'il défilerait en continue !
Voici, en espérant t'avoir un peu éclairé, et que tu y voit + clair dans la logique du code :)
Makdoom
Messages postés9Date d'inscriptionsamedi 4 avril 2009StatutMembreDernière intervention11 mai 2010 11 mai 2010 à 15:23
Merci d'avoir répondu ^^
Malheureusement ca ne marche pas plus, en mettant vxmin à 5 la vitesse ne change plus (normal) mais le texte ne se met a défiler quand meme qu'a partir du moment ou la souris l'a survolé :/
Je crois que les calculs de distance (et donc la détermination de la vitesse) se font par rapport aux coordonnées dans le clip, mais l'objet flash n'est qu'une partie du site, et tant que la souris reste en dehors il n'y a pas de défilement ...
Je continue de tester des trucs mais jusqu'ici je ne trouve rien qui aille.
dj_ouf
Messages postés221Date d'inscriptionvendredi 15 avril 2005StatutMembreDernière intervention 6 septembre 2011 11 mai 2010 à 16:06
J'ai testé le code en créant un nouveau doc flash, j'ai bien le texte défilant en auto directement.
Effectivement si ce flash est englobé dans un site, le comportement peut-être différent.
Si tu veux faire un défilement indépendamment de la position du curseur de la souris, tu peux toujours ordonner un défilement avec une constante :
Makdoom
Messages postés9Date d'inscriptionsamedi 4 avril 2009StatutMembreDernière intervention11 mai 2010 11 mai 2010 à 16:18
Toujours pareil :/
Je vais peut etre dire une betise mais "onEnterframe" est ce que ca ne suppose pas que justement ca nécessite que la souris entre dans la frame (objet ?) ?
ou peut etre faut il ajouter un monClip.visible = true; quelque part pour qu'il oit visible dès le début ? (quand j'attend quelques secondes avant de passer la souris sur le champ de texte celui ci commence a défiler a une position qui laisse supposer qu'il défilait deja mais sans etre visible)