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 :

[MX 2004] Flash du dessin


Sujet :

Flash

  1. #1
    Expert confirmé

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    3 338
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 338
    Points : 4 657
    Points
    4 657
    Par défaut [MX 2004] Flash du dessin
    Bonjour,

    j'ai ce code qui dessine une droite suivant une cercle mais le dessin flache à savoir le clip s'efface avant de retracer et sa clignote.
    quelqu'un as une idée sur l'origine de ce phénomène ?


    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
     
    _global.angle=0;
    _global.Rayon=40;
    _global.Longueur_X = 300;
     
    function traceligne(clip,x_org,y_org,x_dest,y_dest,couleur,epaisseur)
    {
    	clip.moveTo (x_org, y_org) ;
    	clip.lineStyle(epaisseur, couleur); 
    	clip.lineTo (x_dest,y_dest);
     
    }
     
    this.createEmptyMovieClip("Clip",0); 
    //traceligne(Clip,10,10,100,100,0x000000,1);
    _root.Clip.onEnterFrame = function (){
    	angle =angle+1;
    	if (angle==360)
    	{
    		angle=0;
    	}
     
    	traceligne (Clip,10,10,Longueur_X,Math.sin(Math.PI * angle/180)*Rayon+(Rayon/2),0x000000,1);
    	Clip._alpha = ((Math.cos(Math.PI * angle/180)+1)*40)+20;
    	}
    PS : le _alpha du clip permet de donner un effet de profondeur, plus la ligne s'eloigne du spectateur plus elle est grise....

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 13
    Points : 16
    Points
    16
    Par défaut
    Chez moi ça ne clignote pas, je ne vois pas trop quel est le problème...

  3. #3
    Membre émérite
    Avatar de bolo
    Inscrit en
    Novembre 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 309
    Points : 2 695
    Points
    2 695
    Par défaut
    chez moi non +

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    3 338
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 338
    Points : 4 657
    Points
    4 657
    Par défaut
    quand je dit que ca clignote, j'entend par là que l'animation n'est pas fluide, on va parfaitement la ligne disparaitre et réapparaitre...

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    3 338
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 338
    Points : 4 657
    Points
    4 657
    Par défaut
    bon je viens de me rendre compte que j'ai fait très compliqué alors que je pouvais faire très simple...

    au lieu de calculer et redessiner toutes les droites à chaque fois, j'avais mille fois plus simple :

    Creer un symbole et au fur à mesure du temps l'ecraser su la dimension Y (ce qui donne un effet de rotation) tout en diminuant progressivement l'_alpha du clip....

    Bref, j'ai la logique je doit maintenant faire ca en AS2...

    Je posterai pour donner le script.

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    3 338
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 338
    Points : 4 657
    Points
    4 657
    Par défaut
    bon voila la nouvelle idée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    _global.angle = 0;
    _root.test.onEnterFrame = function() {
    	if (angle++ == 360)
    	{
    		angle = 0;
    	}
    	test._yscale = Math.cos(Math.PI/180 * angle) *100;
    	test._alpha = ((Math.sin(Math.PI * angle/180)+1)*40)+20;
    }
    en jouant sur le _yscale et _alpha ca donne un assez bonne effet de rotation !

    test etant un symbole movieclip.

    bon maintenant mon seul problème est que le pivot de changement d'echelle se fasse au milieu du clip hors je voudrais qu'il soit au point 0,0 en bas à droite de mon clip.

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    3 338
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 338
    Points : 4 657
    Points
    4 657
    Par défaut
    trouvé !

    désolé je flood un peu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	if (angle<91 or angle>271)
    	{
    		test2._y = 200+ho - test2._height;
    	}
    	else
    	{
    		test2._y = 200+ho + test2._height;
    	}
    ce qui me permet de repositionner le coin _y du clip.

  8. #8
    Membre expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut
    Citation Envoyé par Goshiz
    trouvé !

    désolé je flood un peu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	if (angle<91 or angle>271)
    	{
    		test2._y = 200+ho - test2._height;
    	}
    	else
    	{
    		test2._y = 200+ho + test2._height;
    	}
    ce qui me permet de repositionner le coin _y du clip.
    hé bien dis moi, tu progresses vite en AS.

  9. #9
    Expert confirmé

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    3 338
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 338
    Points : 4 657
    Points
    4 657
    Par défaut
    Le code est différent mais ca reste de la programmation. donc ca va....

  10. #10
    Expert confirmé

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    3 338
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 338
    Points : 4 657
    Points
    4 657
    Par défaut
    Voila j'ai fini mon code :


    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
    _global.speed= 1;
    _global.CNode = function (A1,L1,R1,L2,R2,X0,Y0,nb_clip){
    	this.A1=A1;
    	this.L1 = L1;
    	this.R1 = R1;
    	this.L2 = L2;
    	this.R2 = R2;
    	this.X0 = X0;
    	this.Y0 = Y0;
    	this.clip = _root.createEmptyMovieClip("Clip" +nb_clip,nb_clip-1)
    	this.draw(this.clip);
     
    	}
     
    CNode.prototype.draw = function (clip) {
    	A1_RAD = Math.PI * this.A1/180;
    	Y1=Math.sin(A1_RAD)*this.R1+this.Y0;
    	X1 = this.L1 + this.X0;
    	alpha = ((Math.cos(A1_RAD)+1)*40)+20;
    	clip.clear();
    	clip.lineStyle(1,0x000000,alpha);
    	clip.moveTo(this.X0,this.Y0);
    	clip.lineTo (X1,Y1);
     
    	Y2 = Math.sin(A1_RAD)*this.R2 +this.Y0;
    	X2 =  this.L2 + X1;
    	clip.lineTo (X2,Y2);
    	}
    CNode.prototype.rotate =function (){
    	this.A1+= speed;
    	this.draw(this.clip);
    }
     
     
     
     
     
     
    _root.cnode1 = new CNode(0,100,40,100,60,10,10,1);
     
     
    function rotate_timer() {
    cnode1.rotate();
    	}
    setInterval (rotate_timer,50);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FLASH MX2004] Dessin en temps réel
    Par avhfx dans le forum Flash
    Réponses: 4
    Dernier message: 18/08/2004, 10h28
  2. [FLASH MX2004] Dessins de traits en actionscript
    Par l'architecte dans le forum Flash
    Réponses: 2
    Dernier message: 28/07/2004, 13h57
  3. Réponses: 17
    Dernier message: 13/07/2004, 20h37
  4. [flash MX 2004] flash dynamique
    Par WriteLN dans le forum Flash
    Réponses: 2
    Dernier message: 26/01/2004, 15h38
  5. [MX 2004]flash et php
    Par Cyberend dans le forum Flash
    Réponses: 13
    Dernier message: 20/01/2004, 18h44

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