Probleme de setInterval

jobe06 Messages postés 47 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 2 novembre 2011 - 20 juil. 2011 à 13:59
aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 - 25 juil. 2011 à 12:10
Bonjour, Voila mon probleme, j'ai une carte, lorsque je clique dessus elle se retourne de la face A a la face B...

J'aimerai faire en sorte que lorsque je suis sur la face B et que je sort du cadre elle se remette toute seule sur la face A au bout de 10 seconde....

Jusque la j'y arrive...

Mon probleme et que meme si je suis sur la face A elle se remet quand meme sur la face B... Alors que je met bien un setInterval et un clearInterval...

Voici mon code, pourriez vous m'aider

import mx.transitions.Tween; // on importe la classe Tween 
import mx.transitions.easing.*;
import flash.display.*;
var pos1:Number= -299;
var pos2:Number= -919;
var pos3:Number= -1539;
var pos4:Number= -2159;
var pos5:Number= -2779;
var cont:Number = 1;
var i:Number=0;
var url:String ="http://www.montalux.fr/v2/tre_ci_luce/pdf/tre_ci_luce_2010.pdf";
clip.bord2._visible=false;
clip.pdf._visible=false;
btpdf._visible=false;
btflip2._visible=false;
clip.texte2._visible=false;
clip.texte1._visible=true;
c_diapo = new Color (clip.bord);
retour.useHandCursor = false;


//***************************************************************************************

var debut: Tween = new Tween( clip.diapo, "_x", Strong.easeOut,1000, pos1, 2, true );


function loadBitmapSmoothed(url:String, target:MovieClip) {
        var bmc:MovieClip = target.createEmptyMovieClip("bmc", target.getNextHighestDepth());
        var listener:Object = new Object();
        listener.tmc = target;
        listener.onLoadInit = function(mc:MovieClip) {
                mc._visible = false;
                var bitmap:BitmapData = new BitmapData(mc._width, mc._height, true, 0x000000);
                this.tmc.attachBitmap(bitmap, this.tmc.getNextHighestDepth(), "auto", true);
                bitmap.draw(mc);
        };
        var loader:MovieClipLoader = new MovieClipLoader();
        loader.addListener(listener);
        loader.loadClip(url, bmc);
}



loadBitmapSmoothed("tre_ci_luce/photos/image1.jpg", clip.diapo.image1);
loadBitmapSmoothed("tre_ci_luce/photos/image2.jpg", clip.diapo.image2);
loadBitmapSmoothed("tre_ci_luce/photos/image3.jpg", clip.diapo.image3);
loadBitmapSmoothed("tre_ci_luce/photos/image4.jpg", clip.diapo.image4);
loadBitmapSmoothed("tre_ci_luce/photos/image5.jpg", clip.diapo.image5);


loadVariablesNum("texte.txt",0);


//***************************************************************************************

clip.im.text = cont;



//***************************************************************************************
function revient(){
clearInterval(Rev);
tourne(cont=1);
}
//****************************************************************************************
function tourne(){
clip.im.text = cont;
clearInterval(Rev);


if(cont == 2){

var rev: Tween = new Tween( clip.diapo, "_x", Strong.easeInOut, clip.diapo._x,pos2, 0.5, true );
}

if(cont == 3){

var rev: Tween = new Tween( clip.diapo, "_x", Strong.easeInOut, clip.diapo._x,pos3, 0.5, true );
}


if(cont == 4){

var rev: Tween = new Tween( clip.diapo, "_x", Strong.easeInOut, clip.diapo._x,pos4, 0.5, true );
}


if(cont == 5){

var rev: Tween = new Tween( clip.diapo, "_x", Strong.easeInOut, clip.diapo._x,pos5, 0.5, true );
}


if(cont == 1){

var rev: Tween = new Tween( clip.diapo, "_x", Strong.easeInOut, clip.diapo._x,pos1, 0.5, true );
}

if(cont == 0){

var rev: Tween = new Tween( clip.diapo, "_x", Strong.easeInOut, clip.diapo._x,pos5, 0.5, true );
}


}



function flip(){
clearInterval(Tempo);
btpdf._visible=false;
var debut: Tween = new Tween( clip, "_xscale", Regular.easeOut,100, 2, 5, false );
var debut: Tween = new Tween( clip, "_yscale", Regular.easeOut,100, 105, 5, false );

debut.onMotionFinished=function(){
if(clip.diapo._visible==true){
clip.pdf._visible=true;
clip.texte2._visible=true;
clip.texte1._visible=false;
clip.diapo._visible=false;
clip.lecture._visible=false;
clip.ar._visible=false;
clip.prec._visible=false;
clip.sui._visible=false;
clip.clic1._visible=false;
clip.clic2._visible=true;
clip.im._visible=false;

}
else {
clip.pdf._visible=false;
clip.texte2._visible=false;
clip.texte1._visible=true;
clip.diapo._visible=true;
clip.men._visible=true;
clip.lecture._visible=false;
clip.ar._visible=true;
clip.prec._visible=true;
clip.sui._visible=true;
clip.clic1._visible=true;
clip.clic2._visible=false;
clip.im._visible=true;
}

var debut2: Tween = new Tween( clip, "_xscale", Regular.easeOut,2, 100, 10, false );
var debut2: Tween = new Tween( clip, "_yscale", Regular.easeOut,120, 100, 10, false );
debut2.onMotionFinished=function(){
if (clip.diapo._visible==false){
btpdf._visible=true;
btflip2._visible=true;
btflip._visible=false;
}
else{
btpdf._visible=false;
btflip2._visible=false;
btflip._visible=true;

}
}
}
}





//**********************************************************************************



clip.prec.onPress =function (){

if(cont==1){
if(i==0){
cont=6;
i=1;
}
else {
cont=6;
}
}

tourne(cont--);

}

clip.sui.onPress =function (){

if(cont==5){
cont=0;
}
tourne(cont++);

}


btflip.onPress = function() {

btflip2._visible=true;
btflip._visible=false;


flip();

}

btflip2.onPress = function() {
clearInterval(Tempo);
btflip2._visible=false;
btflip._visible=true;


flip();

}


btpdf.onPress = function() {
getURL(url,"_blank");

}


btflip.onRollOver = function(){
clearInterval(Rev);
clearInterval(Tempo);
clip.bord._visible=false;
clip.bord2._visible=true;
des._y= 410;
cate._y=2;
titre._y=20;

}


btflip2.onRollOver = function(){
clip.bord._visible=false;
clip.bord2._visible=true;
des._y= 410;
cate._y=2;
titre._y=20;

}

btpdf.onRollOver = function(){
clip.bord._visible=false;
clip.bord2._visible=true;
des._y= 410;
cate._y=2;
titre._y=20;

}

btflip.onRollOut = function(){
clip.bord._visible=true;
clip.bord2._visible=false;
des._y= 200;
cate._y=200;
titre._y=200;
if (cont!=1){

Rev=setInterval (revient,6000);
}
}

btflip2.onRollOut = function(){
clearInterval(Tempo);
Tempo=setInterval (flip,10000);
tourne(cont=1);
clip.bord._visible=true;
clip.bord2._visible=false;
des._y= 200;
cate._y=200;
titre._y=200;

}



clip.prec.onRollOver = function(){
clearInterval(Rev);
clearInterval(Tempo);
clip.bord._visible=false;
clip.bord2._visible=true;
des._y= 410;
cate._y=2;
titre._y=20;

}

clip.prec.onRollOut = function(){
clip.bord._visible=true;
clip.bord2._visible=false;
des._y= 200;
cate._y=200;
titre._y=200;
if (cont!=1){

Rev=setInterval (revient,6000);
}
}

clip.sui.onRollOver = function(){
clearInterval(Rev);
clearInterval(Tempo);
clip.bord._visible=false;
clip.bord2._visible=true;
des._y= 410;
cate._y=2;
titre._y=20;
}

clip.sui.onRollOut = function(){
clip.bord._visible=true;
clip.bord2._visible=false;
des._y= 200;
cate._y=200;
titre._y=200;
if (cont!=1){

Rev=setInterval (revient,6000);
}

}

retour.onRollOver = function(){
clip.bord._visible=true;
clip.bord2._visible=false;
des._y= 200;
cate._y=200;
titre._y=200;

}




3 réponses

aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 1
23 juil. 2011 à 02:08
Bonjour,

Tout d'abord, il serait bien de se mettre a l'as3, l'as2 c'est dépassé tout comme le set interval qui est remplacé par Timer


ceci montre que tu n'as pas de recul sur ta programmation:
var pos1:Number= -299;
var pos2:Number= -919;
var pos3:Number= -1539;
var pos4:Number= -2159;
var pos5:Number= -2779;


en gros ca donne
pos"i"=-(299+(620*(i-1)));
c'est quand meme mieux non, de ce facon tu pourras gérer ta fonction tourne plus simplement
function tourne(){
clip.im.text = cont;
clearInterval(Rev);
var rev:Tween=new Tween(clip.diapo,"_x",Strong.easeInOut,clip.diapo._x,(cont==0)?-2779:-(299+(620*(cont-1))), 0.5, true );
}

si c'est pas joli tout ca^^

ta gestion de l'affichage et de masquage des éléments me parait pas du tout optimisée, vu l'accumulation de visible.
Peut etre faudrait-il regaredr ce que tu peux placer dans le meme conteneur parent.

ne pas oublier les ":void"
function loadBitmapSmoothed(url:String, target:MovieClip):void{


il faut se relire un peu quand meme:
clip.prec.onPress =function (){
if(cont==1){
if(i==0){
cont=6;
i=1;
}
else {
cont=6;
}
}
tourne(cont--);
}


voici la meme chose:
c
lip.prec.onPress =function (){
if(cont==1){
if(i==0){i=1;}
cont=6;
}
tourne(cont--);
}


Et enfin
btflip.onRollOver = function(){
clearInterval(Rev);
clearInterval(Tempo);
clip.bord._visible=false;
clip.bord2._visible=true;
des._y= 410;
cate._y=2;
titre._y=20;

}


btflip2.onRollOver = function(){
clip.bord._visible=false;
clip.bord2._visible=true;
des._y= 410;
cate._y=2;
titre._y=20;

}

btpdf.onRollOver = function(){
clip.bord._visible=false;
clip.bord2._visible=true;
des._y= 410;
cate._y=2;
titre._y=20;

}

btflip.onRollOut = function(){
clip.bord._visible=true;
clip.bord2._visible=false;
des._y= 200;
cate._y=200;
titre._y=200;
if (cont!=1){

Rev=setInterval (revient,6000);
}
}

btflip2.onRollOut = function(){
clearInterval(Tempo);
Tempo=setInterval (flip,10000);
tourne(cont=1);
clip.bord._visible=true;
clip.bord2._visible=false;
des._y= 200;
cate._y=200;
titre._y=200;

}



clip.prec.onRollOver = function(){
clearInterval(Rev);
clearInterval(Tempo);
clip.bord._visible=false;
clip.bord2._visible=true;
des._y= 410;
cate._y=2;
titre._y=20;

}

clip.prec.onRollOut = function(){
clip.bord._visible=true;
clip.bord2._visible=false;
des._y= 200;
cate._y=200;
titre._y=200;
if (cont!=1){

Rev=setInterval (revient,6000);
}
}

clip.sui.onRollOver = function(){
clearInterval(Rev);
clearInterval(Tempo);
clip.bord._visible=false;
clip.bord2._visible=true;
des._y= 410;
cate._y=2;
titre._y=20;
}

clip.sui.onRollOut = function(){
clip.bord._visible=true;
clip.bord2._visible=false;
des._y= 200;
cate._y=200;
titre._y=200;
if (cont!=1){

Rev=setInterval (revient,6000);
}

}

retour.onRollOver = function(){
clip.bord._visible=true;
clip.bord2._visible=false;
des._y= 200;
cate._y=200;
titre._y=200;

}


ca sent un peu la répétition, non?
outre tout ce code lourd et inutile, je pense que tu gère très mal ce que tu souhaite faire, d'ou mon dernier conseil, avant de commencer a coder il faut du papier et un crayon et poser noir sur blanc les bases de son projet.
cela évite de perdre du temps et de pondre des tartines de code inexploitable.

Cordialement
0
jobe06 Messages postés 47 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 2 novembre 2011
25 juil. 2011 à 10:18
Tout , merci pour ta reponse,

Je prend en compte tous ce que tu me dit, mais je tiens à preciser que c'est seulement mon deuxieme projet action script, et que j'ai aucune notion de code, alors l'indulgence serai pas de refus. Mais merci pour ta franchise, j'ai fait de la merde, c tjs ca à prendre pour pouvoir evoluer...

Je vais essayer de voir ce que je peux faire au niveau des repetition, et de tout le reste...

En ce qui concerne AS3, c difficile pour moi, le peu de connaissance que j'ai en AS2, me donnerai a mon avis enormement de temps a reapprendre en AS3, il faut que je m'y mette, c sur..
0
aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 1
25 juil. 2011 à 12:10
re franchement si tu debute passe direcetemnt a l'as3, c'est pas plus compliqué et c'est surement plus cohérent.

Cordialement
0
Rejoignez-nous