IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flash Discussion :

probleme rafraichissement écran


Sujet :

Flash

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Par défaut probleme rafraichissement écran
    Salut.

    Je suis sur un projet en flash, qui simule la 3D (tjs le meme qu'avant). Là, mon problème c'est que lorsque mes pieces se déplacent sur l'écran, j'ai des résidus qui restent affichés, ce qui rend mon anim' dégueulasse.

    voici le code que j'utilise et que je détaille après.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
    //visualisation
    trackball.onEnterFrame = function() {
    	_root.zone_montage.clear();
    	_root.clear();
    	_root.zone_montage.redraw(true);
     
    	//application des paramètres aux pièces
    	for (j=1; j<_global.tableau.length; j++) {
    		var_nom = "elt"+j+"_";
    		nom_fg = "filg"+j+"_";
    		nom_fd = "fild"+j+"_";
    		switch (_global.tableau[j][0]) {
    			case "viewer_rotx" :
    			const_cyli(_global.tableau[j], var_nom, "0x999999", nom_fg, nom_fd, param);
    			break;
    		case "viewer_roty" :
    			const_cyli(_global.tableau[j], var_nom, "0x999999", nom_fg, nom_fd, param);
    			break;
    		}
    		gotoAndPlay(2); //2 c'est la frame où il y a ce code
    	}
    };
    const_cyli = function (tab, nom, couleur, nom_fg, nom_fd, param) {
    	// construction des faces à partir des points
    	for (i=0; i<nb_faces-1; i++) {
    		with (_root.zone_montage[nom+i]) {
    			clear();
    			lineStyle(1, couleur);
    			beginFill(couleur);
    			moveTo(tab[1][i].x, tab[1][i].y);
    			lineTo(tab[1][i+1].x, tab[1][i+1].y);
    			lineTo(tab[1][nb_faces+i+1].x, tab[1][nb_faces+i+1].y);
    			lineTo(tab[1][nb_faces+i].x, tab[1][nb_faces+i].y);
    			lineTo(tab[1][i].x, tab[1][i].y);
    			endFill();
    		}
    	}
    	// dessin derniere face
    	with (_root.zone_montage[nom+(nb_faces-1)]) {
    		clear();
    		lineStyle(1, couleur);
    		beginFill(couleur);
    		moveTo(tab[1][nb_faces-1].x, tab[1][nb_faces-1].y);
    		lineTo(tab[1][0].x, tab[1][0].y);
    		lineTo(tab[1][nb_faces].x, tab[1][nb_faces].y);
    		lineTo(tab[1][2*nb_faces-1].x, tab[1][2*nb_faces-1].y);
    		lineTo(tab[1][nb_faces-1].x, tab[1][nb_faces-1].y);
    		endFill();
    	}
    	// dessin du dessus et du dessous
    	with (_root.zone_montage[nom+(nb_faces)]) {
    		clear();
    		lineStyle(1, 0x000000);
    		beginFill(couleur);
    		moveTo(tab[1][0].x, tab[1][0].y);
    		for (k=0; k<nb_faces; k++) {
    			lineTo(tab[1][k].x, tab[1][k].y);
    		}
    		lineTo(tab[1][0].x, tab[1][0].y);
    		endFill();
    	}
    	with (_root.zone_montage[nom+(nb_faces+1)]) {
    		clear();
    		lineStyle(1, 0x000000);
    		beginFill(couleur);
    		moveTo(tab[1][nb_faces].x, tab[1][nb_faces].y);
    		for (k=0; k<nb_faces; k++) {
    			lineTo(tab[1][nb_faces+k].x, tab[1][nb_faces+k].y);
    		}
    		lineTo(tab[1][nb_faces].x, tab[1][nb_faces].y);
    		endFill();
    	}
    	// gestion des profondeurs en fonction de la position en Z
    	for (i=0; i<nb_faces+2; i++) {
    		_root.zone_montage[nom+i].swapDepths(100000-tab[2][i].z*100);
    	}
    };
    en fait ma pièce tourne en 3D simulée. Je récupère des paramètres d'angles que j'applique, je redessine les faces et je reviens en haut de la page (gotoAndPlay(2)) ou j'efface tout avec :
    _root.zone_montage.clear();
    _root.clear();
    _root.zone_montage.redraw(true);
    zone_montage est le carré où je dessine mes pièces. trackbal est un clip qui simule une trackball. Et c'est quand je suis dessus qu'il lance la boucle de dessin.
    mais il me reste des bouts de face ou de traits sur l'écran. comment l'éviter?
    merci de votre aide

  2. #2
    Membre averti
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Par défaut
    bon j'ai essayé en créant une fonction qui met les clips en visible=false, puis les repasse en true. Ca avait l'air de marcher et puis en fait non. Est ce que ca pourrait venir de la puissance du proc ou de l'ordi en général?

  3. #3
    Membre confirmé

    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 45
    Par défaut
    Regarde la fonction UpdateAfterEvent()...
    Il me semble qu'elle réunitialise l'affichage !

    A tester !

Discussions similaires

  1. Probleme avec écran tactile
    Par lovelyseb dans le forum Windows XP
    Réponses: 3
    Dernier message: 16/04/2007, 12h55
  2. probleme rafraichissement taille police
    Par yvon_huynh dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 30/08/2006, 14h57
  3. Réponses: 3
    Dernier message: 24/05/2006, 11h39
  4. [oracle probleme rafraichissement]
    Par chouchou93 dans le forum Oracle
    Réponses: 1
    Dernier message: 15/05/2006, 17h45
  5. probleme rafraichissement TDBGrid
    Par gg2laba dans le forum C++Builder
    Réponses: 2
    Dernier message: 21/04/2005, 22h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo