tutorial sur particule
objectif:apprendre à utiliser script de particules que l on trouve sur flintparticule.org
par exemple je souhaite mettre fumé qui sort cheminée d'un petit train à vapeur je vais sur flint.org ici:
http://flintparticles.org/examples/fire-and-smoke
4/création et animation movieclip train
a/creons un movieclip d'un petit train avec illustrator j'ouvre un fichier eps ( ou ai) representant un vecteur petit train je fais copier puis dans flash je creer nouveau calque et coller dans ce calque image 1 je met dessin à la bonne echelle je groupe puis transformer en mc nom train exporter pour actionscript class: train un fichier train.as est cree à la racine du dossier
b/animons ce movieclip maintenant à l'aide as3 pour cela je lis le tuto ci dessous ( si vous etes presser faite juste une interpollation mouvement en rajoutant image au calque)
http://animationswf.canalblog.com/archives/2011/11/03/22565304.html
je place pas mc sur stage j utiliserai addchild et je met le script dans mon Main.as et pas sur un calque
j ecoute tuto et j ouvre mon Main petit crayon a droite dans propriete
je rajoute
import flash.utils.Timer;
import flash.events.TimerEvent;
ensuite
public class Main extends flash.display.Sprite
{
internal var smoke:org.flintparticles.twoD.emitters.Emitter2D;
internal var fire:org.flintparticles.twoD.emitters.Emitter2D;
private var chronometre:Timer=new Timer(5);
public var train:MovieClip= new Train();// ici attention on peut pas donner meme nom variable et objet donc bien mettre minucule a train variable et majuscule a Train objet
ne pas oublier de mettre propriete vitesse dans l objet Train sinon on aura droit à erreur dans le Main
package {
import flash.display.MovieClip;
public class Train extends MovieClip {
public var vitesse:int;//ici il faut le mettre
public function Train() {
// constructor code
}
}
}
puis dans le Main je met ma fonction animation juste apres public function Main()
private function animation (evt:TimerEvent):void //j ai mis private mais public ca marche aussi
{
train.x+=train.vitesse;
this.smoke.x =train.x+train.width-15;
this.smoke.y = train.y+5;
/* this.fire.x =train.x+train.width-15;
this.fire.y = train.y+5;*/
if (train.x>=stage.stageWidth){train.x=-train.width};
}
changer var loc1:*=new org.flintparticles.twoD.renderers.BitmapRenderer(new flash.geom.Rectangle(0, 0, 300, 400));en
var loc1:*=new org.flintparticles.twoD.renderers.BitmapRenderer(new flash.geom.Rectangle(0, 0, 550, 250));
pour les parametre de la fume voir dans le smoke.as
au final dans Main.as j ai ca
package
{
import flash.display.*;
import flash.geom.*;
import org.flintparticles.twoD.emitters.*;
import org.flintparticles.twoD.renderers.*;
import flash.utils.Timer;
import flash.events.TimerEvent;
public class Main extends flash.display.Sprite
{
internal var smoke:org.flintparticles.twoD.emitters.Emitter2D;
internal var fire:org.flintparticles.twoD.emitters.Emitter2D;
private var chronometre:Timer=new Timer(0.5);
public var train : MovieClip= new Train();
public function Main()
{
stage.addChild(train);train.x=550;train.y=175;train.vitesse=1;
chronometre.addEventListener(TimerEvent.TIMER,animation);
chronometre.start();
super();
this.smoke = new Smoke();
this.smoke.x = 0;
this.smoke.y = 0;
this.smoke.start();
/* this.fire = new Fire();
this.fire.x = 150;
this.fire.y = 380;
this.fire.start();*/
var loc1:*=new org.flintparticles.twoD.renderers.BitmapRenderer(new flash.geom.Rectangle(0, 0, 550, 300));
loc1.addEmitter(this.smoke);
//loc1.addEmitter(this.fire);
addChild(loc1);
return;
}
private function animation (evt:TimerEvent):void
{
train.x+=train.vitesse;
this.smoke.x =train.x+train.width-19;
this.smoke.y = train.y+5;
/* this.fire.x =train.x+train.width-15;
this.fire.y = train.y+5;*/
if (train.x>=stage.stageWidth){train.x=-train.width};
}
}
}
et ca donne ca :