Forums Développement Multimédia

Aller au contenu

- - - - -

Déformation forme vectoriel

AS3 CODE

5 réponses à ce sujet

#1 biumiz

    Ceinture Jaune

  • Members
  • PipPip
  • 22 messages

Posté 14 February 2015 - 17:23 PM

Bonjour à tous,

J'ai une petite problèmatique. Je cherche à déformer une forme vectorielle.

Je ne parle pas de ses coordonnées ou de ses dimensions. Je parle des éléments qui la composent.

Un peu comme dans l'exemple ci joint : une courbe oscillante.


J'arrive bien à faire l'oscillation, mais la coubre est répétée à chaque pas que je défini.

Je me doute bien qu'il doit y avoir à un moment une ligne de code type graphique.clear();. Mais je ne vois pas comment l'utiliser.


Désolé si le code pique un peu les yeux. j'ai simplifié au maximum.


Merci pour vos coup de pouce.

#2 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 15 February 2015 - 00:26 AM

Bonjour, je ne vois ni l'exemple, ni le code

#3 biumiz

    Ceinture Jaune

  • Members
  • PipPip
  • 22 messages

Posté 15 February 2015 - 11:50 AM

Oups,

Voici le code et je le remet dans la pièce jointe :
package  {


import flash.display.Sprite;
import flash.display.Graphics;
import flash.events.Event;
import flash.display.*;
import com.greensock.*;

public class forme_animee extends Sprite{
  var point1: Number;
  var levre1 : Sprite;
  var valeurCroissante: Number;
  var a : Sprite;

  var test:Sprite;


  public function forme_animee() {
   a = new Sprite()
   a.x=0;
   addChild(a);
 
   point1= new Number()
   point1=a.x;
   valeurCroissante=new Number()
   valeurCroissante=0;
 
   levre1 = new Sprite();
   levre1.x=0
   levre1.graphics.lineStyle(1,0x456789);
   levre1.graphics.moveTo(-100,0);
   levre1.graphics.curveTo(0,a.x,100,0);

   addChild(levre1);
 
   addEventListener(Event.ENTER_FRAME,mouvLevre1)
 
 
  }
function mouvLevre1(evt:Event=null){

valeurCroissante+=0.03;

a.x=(Math.sin(valeurCroissante)*100);

levre1.graphics.moveTo(-100,0);
levre1.graphics.curveTo(0,a.x,100,0);
graphics.clear();
}
}

}

Merci

Fichier(s) joint(s)



#4 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 15 February 2015 - 14:16 PM

Bonjour, tentes déjà de placer ton instruction ..clear avant de faire ton dessin et pas après. L'idée, c'est j'efface tout avec l'instruction clear, puis je dessine

#5 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 16 February 2015 - 10:54 AM

Re bonjour biumiz

J'y vois un peu mieux de mon ordi plutôt que sur mon smartphone, du coup, j'en rajoute un peu.

- il y a beaucoup d'éléments inutiles dans ton code, c'est sans doute parce que tu cherches tes marques mas ça doit aussi te perdre un peu.
- l'instruction clear sert à effacer toute la couche graphique d'un sprite. Il faut donc l'appliquer au sprite sur lequel tu veux (re)dessiner une forme : dans ton cas c'est lèvre1.

Je t'ai nettoyé la classe et supprimé tout ce qui était inutile, tu le remettras si tu en as besoin.


- Afficher le SWF -
Fichier joint  Fla.swf   1.17 Ko   28 téléchargement(s)

NB : attention à une seule chose qui pourrait te créer une petite erreur à laquelle tu ne t'attends pas : j'ai changé le nom de la classe pour mettre une majuscule en début de nom. Ce n'est pas une obligation, mais c'est une pratique universelle pour nommer les classes.

Fichier(s) joint(s)

  • Fichier joint  Archive.zip   7.22 Ko   27 téléchargement(s)


#6 biumiz

    Ceinture Jaune

  • Members
  • PipPip
  • 22 messages

Posté 16 February 2015 - 19:24 PM

Bonjour,


Effectivement, je me suis un peu perdu avec mon code. Je suis donc revenu au basic (crayon et papier).

En partant de ta première info, je suis arrivé à un code similaire et tout aussi efficace.

Je le mets en pièce jointe pour ceux que ça intéresse.


Merci d'avoir répondu.

Fichier(s) joint(s)






Répondre à ce sujet



  

1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP