je me suis interessé à un effet similaire: un effet loupe plus realiste qu'un simple zoom. je l'ai fait en utilisant plusieurs masques : des cercles concentriques chacun masquant un mc avec l'image zoomée à différents facteurs.
voici mon code, si ca t'interesse: (à savoir: l'image originale est ds l'instance du mc image100, et "rond" est le nom d'un mc linké contenant un rond plein centré en 0,0)
zooms={zoom1:150, zoom2:145, zoom3:140, zoom4:135, zoom5:130, zoom6:125 , zoom7:120, zoom8:115, zoom9:110, zoom10:105}; //differentes valeurs de zoom for (zz in zooms) { z=zooms[zz]; duplicateMovieClip(image100,"image"+z,z); // on duplique l'image this["image"+z]._xscale=z; //et on zoome
this["image"+z]._yscale=z; // imageN sera le movie clip de l'image zoomée à N% attachMovie("rond","rond"+z,z-1); // on crée des instances du mc "rond" this["image"+z].setMask(this["rond"+z]); // rondN masquera imageN this["rond"+z]._width=300-z; // on change la taille du rond suivant le zoom choisi (là, ca doit etre améliorable)
this["rond"+z]._height=300-z; }
_root.onEnterFrame=function() { // ce qui s'executera plusieurs fois par seconde x=_root._xmouse; //on prend les coordonnées de la souris y=_root._ymouse; for (zz in zooms) { z=zooms[zz]; this["rond"+z]._x=x; // on centre les ronds sur le curseur de la souris this["rond"+z]._y=y;
this["image"+z]._x=(1-z/100)*x; // on décale l'image zoomée pour que l'on voit bien le zoom this["image"+z]._y=(1-z/100)*y;// de ce qu'il y a sous la souris } }
M'enfin !?
|