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 :

[FLASH MX2004] Tracer ligne discontinue en AS


Sujet :

Flash

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 16
    Points : 10
    Points
    10
    Par défaut [FLASH MX2004] Tracer ligne discontinue en AS
    Bonsoir à tous

    Je suis en train de faire un prog qui dessinera des lignes automatiquement après avoir saisi des coordonnées de points x,y...
    Celà fonctionne très bien ! MAIS, à une autre partie je voudrais non plus avoir des traits continus,__________ mais des traits discontinus_ _ _ _ _ _ _
    comment puis-je faire dans mon code ??? :shock:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    on (press) {
    			//Dessin du contour de la trémie
    lineStyle(2, 0x000000, 100);
    moveTo(varJ ,varJ);
    lineTo(varKtremie/10+50,50);
    lineTo(varKtremie/10+50, varLcage/10+50);
    lineTo(varJ, varLcage/10+50);
    lineTo(varJ ,varJ);}
    Merci et @ + Thaisno

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 41
    Points : 42
    Points
    42
    Par défaut
    Ce que tu peux essayer de faire c'est decomposer ta ligne en n lignes et tu joues sur la visibilite une fois sur deux (i%2). Je ne l'ai teste mais ca peut etre un element de reponse.

  3. #3
    pom
    pom est déconnecté
    Membre habitué
    Inscrit en
    Février 2003
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 120
    Points : 128
    Points
    128
    Par défaut
    Tu peux aller voir sur http://proto.layer51.com un gars nommé Senocular a fait ça (du moins je crois que c'était lui). Sous le nom Hashed line, ou un truc du genre.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 16
    Points : 10
    Points
    10
    Par défaut [FLASH MX2004] Tracer ligne discontinue en AS
    Bonsoir,

    Tu peux aller voir sur http://proto.layer51.com un gars nommé Senocular a fait ça (du moins je crois que c'était lui). Sous le nom Hashed line, ou un truc du genre.
    J'y suis allé, me suis inscrit, j'ai cherché... et pas trouvé... dommage...


    dur dur...
    Merci qd même
    @+ Thaisno

  5. #5
    pom
    pom est déconnecté
    Membre habitué
    Inscrit en
    Février 2003
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 120
    Points : 128
    Points
    128
    Par défaut
    Mon anglais laisse un peu à désirer C'était Dash, pas Hash :
    http://proto.layer51.com/d.aspx?f=582
    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
    79
    80
    81
    //Drawing Methods Rewrite v1.5
    MCP = MovieClip.prototype;
    MCP.TbeginFill = MCP.beginFill;
    MCP.TbeginGradientFill = MCP.beginGradientFill;
    MCP.Tclear = MCP.clear;
    MCP.TcurveTo = MCP.curveTo;
    MCP.TendFill = MCP.endFill;
    MCP.TlineStyle = MCP.lineStyle;
    MCP.TlineTo = MCP.lineTo;
    MCP.TmoveTo = MCP.moveTo;
    MCP._xDraw = 0;
    MCP._yDraw = 0;
    MCP.beginFill = function(a){
      this.TbeginFill(a);
      this.xBeg=this._xDraw;
      this.yBeg=this._yDraw;
    }
    MCP.beginGradientFill = function(a,b,c,d,e){
      this.TbeginGradientFill(a,b,c,d,e);
      this.xBeg=this._xDraw;
      this.yBeg=this._yDraw;
    }
    MCP.clear = function(){
      this.Tclear(this._xDraw=0,this._yDraw=0);
    }
    MCP.curveTo = function(controlX,controlY,anchorX,anchorY){
      this.TcurveTo(controlX,controlY,this._xDraw=anchorX,this._yDraw=anchorY);
    }
    MCP.endFill = function(){
      this.TendFill(this._xDraw=this.xBeg,this._yDraw=this.yBeg);
    }
    MCP.lineStyle = function(a,b,c,d){
      if(a>=0 && !d)
        this.dash=0;
      else if(!d)
        this.dash = 6;
      else
        this.dash = d;
      this.TlineStyle(Math.abs(a),b,c);
    }
    MCP.lineTo = function(x,y){
      if(!this.dash)
        this.TlineTo(this._xDraw=x,this._yDraw=y);
      else{
        xd = x-this._xDraw;
        yd = y-this._yDraw;
        d = Math.sqrt(xd*xd+yd*yd)
        xs = this.dash*xd/d;
        ys = this.dash*yd/d;
        while(Math.abs(this._xDraw-x) >= Math.abs(2*xs) && Math.abs(this._yDraw-y) >= Math.abs(2*ys)){
          this.TlineTo(this._xDraw+=xs,this._yDraw+=ys);
          this.TmoveTo(this._xDraw+=1*xs,this._yDraw+=1*ys);
        }
        this.TlineTo(this._xDraw=x,this._yDraw=y);
      }
    }
    MCP.lineBy = function(x,y){
      if(!this.dash)
        this.TlineTo(this._xDraw+=x,this._yDraw+=y);
      else{
        xd = this._xDraw+x;
        yd = this._yDraw+y;
        d = Math.sqrt(x*x+y*y)
        xs = this.dash*x/d;
        ys = this.dash*y/d;
        while(Math.abs(this._xDraw-xd) >= Math.abs(2*xs) && Math.abs(this._yDraw-yd) >= Math.abs(2*ys)){
          this.TlineTo(this._xDraw+=xs,this._yDraw+=ys);
          this.TmoveTo(this._xDraw+=1*xs,this._yDraw+=1*ys);
        }
        this.TlineTo(this._xDraw=xd,this._yDraw=yd);
      }
    }
    MCP.moveTo = function(x,y){
      this.TmoveTo(this._xDraw=x,this._yDraw=y);
    }
    MCP.moveBy = function(x,y){
      this.TmoveTo(this._xDraw+=x,this._yDraw+=y);
    }
     
    this.lineStyle (0, 100, 100, 5) ;
    this.lineTo (300, 500) ;

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 16
    Points : 10
    Points
    10
    Par défaut [FLASH MX2004] Tracer ligne discontinue en AS
    Bonsoir à tous,
    en même temps que je post ce qui suit je découvre le post de "pom" ci-dessus, je te remercie pour ton aide, c'est sympa
    De mon coté j'ai cherché et après bien des difficultés j'ai enfin réussi à tracer ce foutu rectangle en pointillés

    Je suis repati d'un code proposé par
    "candelrg" dans un post "tracer un rectangle sans le dessiner"...
    Je n'ai donc rien inventé, j'ai juste apporté quelques modifs qui permettront de l'exploiter plus facilement...il suffit de le copier coller sur un bouton, et de modifier les valeurs des 3 variables varA, varB, varOrigine...

    Tout d'abord placer le code dans un bouton "on (press) {.........}"
    Ensuite création de 3 variables, soit sur un calque, soit directement dans la suite du code, comme ci-dessous...
    //création d'un rectangle de base 400 (varA=400), par 250 de haut (varB=250)
    varA=500;
    varB=150;
    //et dont l'origine est à 50 en x, et 50 en y
    varOrigine=50;

    A l'intérieur du code je ne comprends pas forcément tout mais j'ai mis quelques notes bien modestement..

    A oui, le rectangle démarre en haut à gauche et tourne dans le sens inverse des aiguilles d'une montre...
    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
    on (press) {
    //création d'un rectangle de  base 400 (varA=400), par 250 de haut (varB=250)
    varA=500;
    varB=150;
    //et dont l'origine est à 50 en x, et 50 en y
    varOrigine=50;
    _root.createEmptyMovieClip ("rectangle", 1); 
    with (_root.rectangle){ 
    beginFill (0xFFEEFF, 50); //facultatif... pour remplir le rectangle d'une couleur mauve avec alpha de 50
    var al = 0; 
    	//Dessin de la ligne Verticale Gauche du rectangle
    moveTo (varOrigine,varOrigine)  //place le crayon au point d'origine du dessin
    for (var i=0; i<=varB; i+=10){  //ici on trouve la varB
      if ( i==0 || i==200) { 
       al = 100; 
      }else{ 
       al = 100 - al; 
      } 
      lineStyle (0, 0xFF000, al); 		//couleur vert
      lineTo(varOrigine,i+varOrigine); 	//trace la ligne vers le point x=varOrigine, et y=i+varOrigine
    } 
    //Dessin de la ligne Horizontale Basse du rectangle
    for (var i=0; i<=varA; i+=10){ //la on trouve la varA
      if ( i==0 || i==200) { 
       al = 100; 
      }else{ 
       al = 100 - al; 
      } 
      lineStyle (0, 0x0FFFF, al);  	//couleur cyan
      lineTo(varOrigine+i,varOrigine+varB); //trace la ligne vers le point x=varOrigine+i, et y=varOrigine+varB
    } 
    //Dessin de la ligne Verticale Droite du rectangle
    for (var i=0; i<=varB; i+=10){ //ici on retrouve encore la varB
      if ( i==0 || i==200) { 
       al = 100; 
      }else{ 
       al = 100 - al; 
      } 
      lineStyle (0, 0xFF0FF0, al); 	//couleur mauve
      lineTo(varOrigine+varA,varOrigine+varB-i); //trace la ligne vers le point x=varOrigine+varA, et y=varOrigine+varB-i
    } 
    //Dessin de la ligne Horizontale Haute du rectangle
      for (var i=0; i<=varA; i+=10){ //ici on retrouve encore la varA
      if ( i==0 || i==200) { 
       al = 100; 
      }else{ 
       al = 100 - al; 
      } 
      lineStyle (0, 0x00000, al); 	//couleur noire
      lineTo(varOrigine+varA-i,varOrigine); //trace la ligne vers le point x=varOrigine+varA-i, et y=varOrigine
    		} 
     
    //endFill(); //applique un remplissage aux lignes 
    	} 
    }
    Voilà j'espère que celà en aidera ....

    maintenant si quelqu'un trouve la combine pour dessiner un simple arc de cercle en pointillés...merci.

    Allez bonne nuit à tous et @ plus, Thaisno

  7. #7
    pom
    pom est déconnecté
    Membre habitué
    Inscrit en
    Février 2003
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 120
    Points : 128
    Points
    128
    Par défaut
    Dans la même veine, tu trouveras sûrement chez layer51 quelques protos qui te permettent de dessiner des courbes de Bézier point par point, ou plutôt segment par segment, et à partir de là c'est simple de dire que tu veux 1 segment sur 2 soit invisible

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    Pour répondre à ma propre attente et pour ceux que celà intéresse voir le sujet ouvert et solutionné
    [Résolu] [FLASH MX2004] Tracer cercle ou arc discontinue en AS
    où "freegreg", m'a aidé largement à trouver la réponse...

    Ceci dit c'est super GENIAL, à présent à l'aide de ton code "freegreg", on peut traiter des cercles ou des arcs en traits interrompus avec une trés grande facilité... ce que je recherchais
    @+ Thaisno

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

Discussions similaires

  1. [FLASH MX2004] Tracer une ligne en temps réel
    Par tomtom- dans le forum Flash
    Réponses: 1
    Dernier message: 16/02/2006, 09h52
  2. Réponses: 3
    Dernier message: 29/08/2005, 16h44
  3. Réponses: 9
    Dernier message: 01/01/2005, 17h16
  4. Réponses: 7
    Dernier message: 22/12/2004, 14h03
  5. Réponses: 2
    Dernier message: 03/12/2004, 09h27

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