Un bouton qui fait tourner un image dans un clip vide ((createEmptyMovieClip))

Résolu
francis2225014 Messages postés 6 Date d'inscription lundi 22 novembre 2010 Statut Membre Dernière intervention 25 novembre 2010 - 25 nov. 2010 à 15:10
BBFUNK01 Messages postés 1310 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

11 réponses

BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
25 nov. 2010 à 15:31
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... ;-) ;
3
francis2225014 Messages postés 6 Date d'inscription lundi 22 novembre 2010 Statut Membre Dernière intervention 25 novembre 2010
25 nov. 2010 à 15:51
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
0
francis2225014 Messages postés 6 Date d'inscription lundi 22 novembre 2010 Statut Membre Dernière intervention 25 novembre 2010
25 nov. 2010 à 16:41
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?
0
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
25 nov. 2010 à 16:43
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... ;-) ;
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
25 nov. 2010 à 16:46
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... ;-) ;
0
francis2225014 Messages postés 6 Date d'inscription lundi 22 novembre 2010 Statut Membre Dernière intervention 25 novembre 2010
25 nov. 2010 à 16:59
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;
}
0
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
25 nov. 2010 à 17:14
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... ;-) ;
0
francis2225014 Messages postés 6 Date d'inscription lundi 22 novembre 2010 Statut Membre Dernière intervention 25 novembre 2010
25 nov. 2010 à 17:24
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
0
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
25 nov. 2010 à 17:45
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... ;-) ;
0
francis2225014 Messages postés 6 Date d'inscription lundi 22 novembre 2010 Statut Membre Dernière intervention 25 novembre 2010
25 nov. 2010 à 23:43
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
0
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
26 nov. 2010 à 06:58
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... ;-) ;
0
Rejoignez-nous