begin process at 2012 05 27 16:48:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Flash / Flash MX

 > 

Scripts

 > 

ActionScript

 > 

rotaion d'un movie clip en perspective avec rollover


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

rotaion d'un movie clip en perspective avec rollover

vendredi 5 mars 2010 à 00:27:54 | rotaion d'un movie clip en perspective avec rollover

vincentduceau

bonjour,
je souhaite réaliser une script assez simple d'un movie clip en rotation sur les x et y mais en perspective et ce suivant le pointeur de la souris.
je bosse sur CS4.
j'en suis là c'est à dire à rien.
En plus je souhaite le faire en roll over mais je pense que c'est la deuxième étape et qu'elle ne sear pas forcément compliquée.
il me manque l'axe des z et la déformation du clip je galère pas mal.
il paraît qu'en 3 lignes de code c'est torché, mais pour le coup... c'est moi qui l'ai dans le ...

si quelq'un pouvait m'aider ca serait bien cool merci à tous d'avance.



menu.addEventListener(Event.ENTER_FRAME, Moving);
function Moving(e:Event):void
{
menu.rotation = ((mouseX - menu.x)/25) + ((mouseY - menu.y)/25) ;
}
vendredi 5 mars 2010 à 09:51:00 | Re : rotaion d'un movie clip en perspective avec rollover

pegase31

Membre Club Administrateur CodeS-SourceS
bonjour,

Si tu veux faire une "rotation sur les x et y mais en perspective", pourquoi ne modifies-tu que la rotation ?

Il faut modifier la rotationX et rotationY si tu veux obtenir un résultat.
Sans parler du fait que ça ne te donnera vraiment pas grand choses sans utiliser la classe Matrix3D.

Peg'
vendredi 5 mars 2010 à 12:20:29 | Re : rotaion d'un movie clip en perspective avec rollover

vincentduceau

salut peg,
même avec la CS4 qui gère de la 3D (enfin presque) on est obligé de passer par cette classe.
Je connais pas, j'en ai juste entendu parlé; mais je me suis un peu renseigné et j'ai trouvé ca que j'ai adapté. erreur:

"TypeError: Error #1009: Il est impossible d'accéder à la propriété ou à la méthode d'une référence d'objet nul."







menu.addEventListener(Event.ENTER_FRAME, Moving);

function Moving(e:Event):void{

menu.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);

function mouseMoveHandler(e:MouseEvent):void {
var y:int;
var x:int;

if(e.localX > menu.x) {
y = (Math.round(e.localX) / 100);
menu.transform.matrix3D.prependRotation(y, Vector3D.Y_AXIS);
}

else {
y = -(Math.round(e.localX) / 10);
menu.transform.matrix3D.prependRotation(y, Vector3D.Y_AXIS);
}

if(e.localY > menu.y) {
x = (Math.round(e.localY) / 100);
menu.transform.matrix3D.prependRotation(y, Vector3D.X_AXIS);
}

else {
x = -(Math.round(e.localY) / 100);
menu.transform.matrix3D.prependRotation(y, Vector3D.X_AXIS);
}


}
}
vendredi 5 mars 2010 à 12:27:10 | Re : rotaion d'un movie clip en perspective avec rollover

vincentduceau

voilà pardon j'ai posté sans dire merki.

donc je ne sais pas si c'est la bonne méthode et j'ai vraiment besoin d'un petit coup de pouce ou un gros.
vendredi 5 mars 2010 à 17:02:44 | Re : rotaion d'un movie clip en perspective avec rollover

pegase31

Membre Club Administrateur CodeS-SourceS
c'est effectivement la meilleure, mais il faudrait extérioriser ta matrix 3D oiur éviter de modifier les transform constamment :

Code ActionScript :
var mtx:Matrix3D = new Matrix3D();
menu.transform.matrix3D = mtx;


et tu fais tes prepends directement sur mtx.

Par contre, je ne comprends pas tes "if", un simple calcul suffirait pour définir la rotation.

Peg'
samedi 6 mars 2010 à 15:03:22 | Re : rotaion d'un movie clip en perspective avec rollover

vincentduceau

salut peg,
c'est à dire pour les "if" je ne comprend pas ce que tu veux dire, le calcul tu le fais comment et surtout mon erreur est du à quoi en fait.
merci d'avance
samedi 6 mars 2010 à 15:56:17 | Re : rotaion d'un movie clip en perspective avec rollover

pegase31

Membre Club Administrateur CodeS-SourceS
si tu regardes ton code, les conditions servent juste à mettre un "-" dans ton calcul des x/y ..
Alors que la valeur est déjà définie dans condition ...

tu dois jouer sur la distance entre le x/y de ta souris et le x/y de ton objet.

tu veux juste savoir le décalage de clip/souris.
Une simple soustraction (souris-clip) suffit à te donner le résultat.

Teste dans ta fonction Moving :
Code ActionScript :
trace ("Decalage X:", e.localX-menu.x);
trace ("Decalage Y:", e.localY-menu.y);


Peg'
samedi 6 mars 2010 à 17:43:05 | Re : rotaion d'un movie clip en perspective avec rollover

vincentduceau

ca marche pas j'ai accès non définie à la propriété non définie quand "j'extériorise".
Je comprend pas tout ce que tu veux me dire. Si tu pouvais être un peu plus à ma portée ca serait cool.
j'ai fais ca après tes conseils mais quedal..
je ne sais pas si c'est ce que tu voulais dire...

merci




menu.addEventListener(Event.ENTER_FRAME, Moving);
var mtx:Matrix3D = new Matrix3D();

menu.transform.matrix3D = mtx;
mtx.transform.matrix3D.prependRotation(y, Vector3D.Y_AXIS);
mtx.transform.matrix3D.prependRotation(x, Vector3D.X_AXIS);

function Moving(e:Event):void{

menu.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);

function mouseMoveHandler(e:MouseEvent):void {
var y:int;
var x:int;





if(e.localX > menu.x) {
y = (Math.round(e.localX) / 100);
}

else {
y = -(Math.round(e.localX) / 10);

}

if(e.localY > menu.y) {
x = (Math.round(e.localY) / 100);

}

else {
x = -(Math.round(e.localY) / 100);

}


}
}





samedi 6 mars 2010 à 19:08:37 | Re : rotaion d'un movie clip en perspective avec rollover

pegase31

Membre Club Administrateur CodeS-SourceS
J'ai comme l'impression que tu ne comprends pas ce que tu fais ...

Regarde ce qu'il faut faire :

- mtx étant Matrix3D
- appliquer mtx à ta transformation matrix3D du clip
- à chaque mouvement de souris :
=> calculer le décalage X de la souris par rapport au centre du clip
=> calculer le décalage Y de la souris par rapport au centre du clip
=> modifier la rotation de mtx en X en fonction du décalage X
=> modifier la rotation de mtx en Y en fonction du décalage Y

Tu as, là, les lignes de codes essentiels (pas une de plus) dont tu as besoin pour ce script.
A toi de les convertir avec les infos que je t'ai données plus haut.

Peg'

ps: je ne ferais pas le code à ta place, mais tu vas y arriver.
dimanche 7 mars 2010 à 17:28:17 | Re : rotaion d'un movie clip en perspective avec rollover

vincentduceau


ouais ouais, je souhaite pas que tu me pondes un srcipt mais bon tu vous que je sèche un peu et que je me démène, pour que j'avance il faut que je puisse savoir où je me trompe.
Je te remercie de me répondre mais j'ai encore pas mal de galère en perspective (sans jeux de mots), je débute alors si tu pouvais abréger mes souffrances.

Bon j'ai simplifié le code, là où je coince c'est sur la méthode pour modifier la rotation en fonction du décalage. car si je fais ca à la fin:
Code ActionScript :
menu.transform.matrix3D.prependRotation(y, Vector3D.Y_AXIS)= decalageX;


ou ce qui revient au même

Code ActionScript :
menu.transform.matrix3D.prependRotation(y, Vector3D.Y_AXIS)= (e.localX-menu.x);




on est bien d'accord que je me retrouve avec un problème de valeur avec le début de mon script.

Donc je me retrouve avec le script ci-dessous mais ca coince. Mon prepend aussi je suis pas sur de moi... Merci encore à toi.






Code ActionScript :


menu.addEventListener(Event.ENTER_FRAME, Moving); 

var mtx:Matrix3D = new Matrix3D(); 
menu.transform.matrix3D = mtx; 

function Moving(e:Event):void{ 

menu.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); 

function mouseMoveHandler(e:MouseEvent):void { 

 var decalageX =(e.localX-menu.x);
 var decalageY =(e.localY-menu.y);

menu.transform.matrix3D.prependRotation(y, Vector3D.Y_AXIS); 
menu.transform.matrix3D.prependRotation(x, Vector3D.X_AXIS);

menu.y += decalageY;
menu.x += decalageX;
 }
}




1 2

Cette discussion est classée dans : menu, clip, movie, perspective, rotaion


Répondre à ce message

Sujets en rapport avec ce message

Menu déroulant dans Flash 7 avec anime et transpance [ par marvin42 ] Bonjour à tous, j'ai un petit problème avec la réalisation d'un menu dans Flash 7. Je l'ai monté comme suit: c'est un bouton dans une scène avec en Gros Problèmes - Menu animé dans flash 7 (débutante) [ par marvin42 ] Bonjour à tous, j'ai un problème avec la réalisation d'un menu dans Flash 7. Je l'ai monté comme suit: c'est un bouton dans une scène avec en r Arrêter un movie clip [ par stevefigueras ] bonjour à tous j'ai un petit souci. J'ai fait un menu avec un sous menu qui appelle des Movie Clip. Seulement lors de la navigation certains movies Menu qui boude ses pages..... [ par polo59223 ] Bonjour à tous, Nouveau sur le site, je vous livre mon premier post.... Dans le cadre de mon travail, je dois re-faire le site de ma boîte suite à u Remplacer un movie clip (child) par un autre en as3 [ par mariemachin ] Salut la compagnie, Je suis novice en action script 3 Je souhaiterais faire un truc à priori tout simple, à savoir remplacer un movie clip (movieclip1 desactivé un clip [ par patrickart ] Bonjour a tous, j'ai crée un portfolio, des capture de photos sont affiché dans un clip appelé "menu" et sont en quelques sorte des boutons, lorsque j variable non détectée dans movie clip [ par syl999 ] Bonjour tout le monde. Juste une question : une variable qui est définie sur la scène principale et qui est appellée dans une frame à l'intérieur d'u Menu avec clip qui suit la souris [ par antoine6137 ] Bonjour, Je souhaite faire un menu comme celui-ci : http://www.benettiyachts.it/sito/home.asp?lang=en Avec un clip qui suit la souris dans le menu. TORSION CLIP [ par kevan7 ] Bonjour tout le monde alors voila j'ai un petit probleme pour une animation Je vous contacte car je n'ai pas trouver sur le net vous etes mon dernier comment arreter un movie clip avec un bouton [ par sliper69 ] Bonjour j'ai un petit problème j'ai un petit bonhomme qui cour j y ai mit un petit bouton play; [color=blue]on (release) { play(); } [/color] et u


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales