Un bouton qui fait tourner un image dans un clip vide ((createEmptyMovieClip)) [Résolu]

Messages postés
6
Date d'inscription
lundi 22 novembre 2010
Statut
Membre
Dernière intervention
25 novembre 2010
- - Dernière réponse : BBFUNK01
Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
- 26 nov. 2010 à 06:58
Bonjour j'aimerais savoir si quelqu'un pourrais m'aider sur cette question.

j'aimerais que quand je cliques sur un boutons une image que j'ai loader dans un ''createEmptyMovieClip'' puisse tourner. soit a 90 180 270 360

voici mon code de base :

on (press) {
loadVariablesNum("load.txt", 3);
}


on (release) {
this.createEmptyMovieClip("conteneur_mc",1);

conteneur_mc.loadMovie("image.jpg");

conteneur_mc._x = 40;
conteneur_mc._y = 50;
conteneur_mc._xscale = conteneur_mc._yscale /= 5;

this.onEnterFrame = function(){
total.text = conteneur_mc.getBytesTotal()+" ko";
charge.text = conteneur_mc.getBytesLoaded()+" ko";
pourcent.text = Math.floor((conteneur_mc.getBytesLoaded()/conteneur_mc.getBytesTotal())*100) + " %";
if (pourcent.text "100 %") this.onEnterFrame null;
if (pourcent.text == "100 %") loadVariablesNum("work06.txt", 0);
}


stop();

}


merci de votre réponse
Afficher la suite 

11 réponses

Meilleure réponse
Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
3
Merci
Hello,

tout d'abord n'y aurait-il pas une erreur à cette ligne du code que tu as mis :
conteneur_mc._xscale = conteneur_mc._yscale /= 5;


conteneur_mc._yscale /= 5;
A mon avis le slash est de trop .

Sinon pour faire rotationner ton clip :
Bouton.onrelease = function(){
conteneur_mc._rotation += 90;
}


Tu peux aussi jeter un œil aux tweens afin de faire rotationner ton clip avec un peu plus de "souplesse".

A plus ,

BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 193 internautes nous ont dit merci ce mois-ci

Commenter la réponse de BBFUNK01
Messages postés
6
Date d'inscription
lundi 22 novembre 2010
Statut
Membre
Dernière intervention
25 novembre 2010
0
Merci
merci pour ta réponse BBFUNK
mais je suis une crétin de débutant
ou je devrais mettre ce code?


voici un lien avec mon flash .fla et .jpg

http://mk01.free.fr/code.zip


merci mille fois

je vais essayer de faire un tuto lorsque j'aurrais ma réponse car j'ai trouvé plein de question la dessus sans réellement de réponse concluante
Commenter la réponse de francis2225014
Messages postés
6
Date d'inscription
lundi 22 novembre 2010
Statut
Membre
Dernière intervention
25 novembre 2010
0
Merci
j'ai finalement créer un bouton et je lui est mis ce code

on (press) {
_root.conteneur_mc._rotation = _root.conteneur_mc._rotation+90;
if (_root.conteneur_mc._rotation == 360) {
_root.conteneur_mc._rotation = 0;
}
}

et cela fonctionne (je crois BBFUNK que ce que je n'avais pas compris c'est le root)

une derniere question svp

j'aimerais que mon conteneur_mc (mon movieclip) tourne sur lui même (point centre) que devrais ajouté comme code?
Commenter la réponse de francis2225014
Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
0
Merci
Re,

ne te sous-estimes pas, tu es peut-être un débutant mais un crétin... Je ne sais pas. Après si tu es convaincu que tu es un crétin je te recommande alors d'abandonner la programmation dans Flash, et la programmation tout court d'ailleurs .
Bon je t'aide un peu :
tu crées un bouton dans ton fichier flash, ce bouton tu lui donnes comme nom d'occurrence "toto" par exemple, puis tu colles le script à l'endroit qu'il convient dans ton Flash :
toto.onrelease = function(){
conteneur_mc._rotation += 90;
}


Un peu de persévérence .

BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
Commenter la réponse de BBFUNK01
Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
0
Merci
Oulala !!!

je t'en conjure oublies "_root" concernant ton code, il est formellement déconseillé d'utiliser "_root" pour cibler des éléments : ça fout vite le bordel dans les fichiers suivant certains cas.
Si "conteneur_mc" est au 1er niveau sur ta scène, il suffit de l'appeler en écrivant simplement "conteneur_mc".
"_root.conteneur_mc" ... c'est un pléonasme .

A plus ,

BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
Commenter la réponse de BBFUNK01
Messages postés
6
Date d'inscription
lundi 22 novembre 2010
Statut
Membre
Dernière intervention
25 novembre 2010
0
Merci
MERCI MERCI MERCI de tes conseil tu es super gentil

mais puis-je te voler quelques temps pour ma derniere question stp

j'aimerais que mon conteneur_mc (mon movieclip) tourne sur lui même (point centré) que devrais ajouté comme code ?

toto.onrelease = function(){
conteneur_mc._rotation += 90;
}
Commenter la réponse de francis2225014
Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
0
Merci
Il suffit simplement lors de la création du clip de définir son point de rotation en son centre.

BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
Commenter la réponse de BBFUNK01
Messages postés
6
Date d'inscription
lundi 22 novembre 2010
Statut
Membre
Dernière intervention
25 novembre 2010
0
Merci
malheureusement c'est que je ne vois pas le movie clip il viens dans le code du bouton!!!

je clique sur un bouton le clip apparait
je clique sur un autre bouton le clip tourne
mais il tourne par son coin gauche haut j'aimerais qu'il tourne en sont point centre

Mon boutons fesant apparaitre le clip :

on (press) { 
loadVariablesNum("load.txt", 3); 
} 


on (release) { 
this.createEmptyMovieClip("conteneur_mc",1); 

conteneur_mc.loadMovie("image.jpg"); 

conteneur_mc._x = 40; 
conteneur_mc._y = 50; 
conteneur_mc._xscale = conteneur_mc._yscale /= 5; 

this.onEnterFrame = function(){ 
total.text = conteneur_mc.getBytesTotal()+" ko"; 
charge.text = conteneur_mc.getBytesLoaded()+" ko"; 
pourcent.text = Math.floor((conteneur_mc.getBytesLoaded()/conteneur_mc.getBytesTotal())*100) + " %"; 
if (pourcent.text "100 %") this.onEnterFrame null; 
if (pourcent.text == "100 %") loadVariablesNum("work06.txt", 0); 
} 


stop(); 

} 





Mon bouton qui fait tourner le clip :


toto.onrelease = function(){ 
conteneur_mc._rotation += 90; 
} 





ou dois-je mettre le code pour le centré et quel est le code


finalement je ne suis pas un cretin débutant mais un débutant achalant
Commenter la réponse de francis2225014
Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
0
Merci
Oui forcément : le clip est créé dynamiquement .

Il faut que tu crées un clip vide que tu stockeras dans la bibliothèque, pour ce faire tu fais un carré (ou un rectangle) de la taille que tu souhaites, ensuite tu transformes ton quadrilatère en clip, tu coches "exporter pour actionscript" dans la fenêtre de création du clip, dans cette même fenêtre tu nommes le clip "toto", puis tu nommes le clip avec un ID de liaison, par exemple "IDtoto", attention il ne faut pas mettre de nom d'occurrence au clip dans ce cas-là. Ensuite tu mets ce code :

on (release) { 
this.attachMovie("IDtoto", "toto", 1);


BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
Commenter la réponse de BBFUNK01
Messages postés
6
Date d'inscription
lundi 22 novembre 2010
Statut
Membre
Dernière intervention
25 novembre 2010
0
Merci
tout fonctionne a merveille j'ai pris tes codes et suivi tes instructions

par contre par contre j'aimerais loader une image quand je clique sur un boutons et une autre dans le même conteneur_mc

si je le met sur le bouton l'image apparait bien mais sont centre de rotation reviens sur le coins gauche en haut

on (press) { 
this.attachMovie("IDconteneur_mc","conteneur_mc",1);

conteneur_mc.loadMovie("image.jpg");

conteneur_mc._x = 50;
conteneur_mc._y = 50;

conteneur_mc._xscale = conteneur_mc._yscale /= 3;

}


merci
Commenter la réponse de francis2225014
Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
0
Merci
Hello,

autre méthode envisageable :
tu crées un clip vide sur la scène auquel tu définis le point de rotation en son centre, nommes par exemple ce clip "MonCLip" comme nom d'occurrence.
Ensuite lorsque tu cliques sur ton bouton tu indiques d'attacher "conteneur_mc" à l'intérieur de "MonClip", de ce fait le coin haut gauche de "MonClip" se trouvera au centre de "MonClip" (donc sur le point de rotation), il ne reste plus après qu'à recentrer "conteneur_mc" et si besoin le redimensionner :
Bouton.onPress = function(){ 
MonClip.attachMovie("IDconteneur_mc","conteneur_mc",1);

MonClip.conteneur_mc.loadMovie("image.jpg");

if(MonClip.conteneur_mc._width > MonClip._width){
MonClip.conteneur_mc._xscale MonClip.conteneur_mc._yscale MonClip._width/MonClip.conteneur_mc._width*100;
MonClip.conteneur_mc._x = MonClip._x - MonClip._width/2;
MonClip.conteneur_mc._y = MonClip._y - MonClip._height/2;
}
}


Mais tu peux aussi mettre "MonClip" dans la bibliothèque et non sur la scène puis l'attacher sur la scène lors du clic sur le bouton, il suffit alors de mettre directement "conteneur_mc" dans "MonCLip" ("conteneur_mc" devra alors avoir un nom d'occurrence cette fois-ci). Et en général mets ton code sur un calque "actions" sur ta scène et évite de le dispatcher sur plusieurs éléments -> tel que tu as mis ton code sur le bouton par exemple.

A plus ,

BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
Commenter la réponse de BBFUNK01