PDA

Volledige versie bekijken : [Bijgewerkt] Smoke effect ...


Iasonic
%Europe/Berlin %742 %2009, 18:48
Ik heb een redelijk begin kunnen maken voor mijn rook effect.
Maar het is nog niet het gewenste resultaat, ik mis nog een stuk waar ik mijn
rook pluimpjes kan verwijderen, dat werkt niet waarom weet ik niet. (removeChilde(this)).

En nog een ander probleem is dat het steets langzamer gaat lopen, waardoor er een soort van gaten in de rookpluimen ontstaat. Wie kan mij helpen dit verder te verbeteren.

Verder heb ik nog een vraag is het verstandig om tweener te gebruik in plaats van x en y waarden te verhogen? Ik vind dat het nu een beetje schokkend gaat...

Suggesties en advies zijn welkom.



var container:MovieClip = new MovieClip();
addChild(container);
container.filters = [new BlurFilter(4,4,3)];

var timer:Timer = new Timer(10);
timer.addEventListener(TimerEvent.TIMER,addParticl e);
timer.start();

//stage.addEventListener(Event.ENTER_FRAME,addPartic le);

function addParticle(e:TimerEvent):void{
var particle:Smoke = new Smoke(randRange(-2,2),randRange(-10,10));
particle.x = randRange(270,250);
particle.y = 400;
//particle.scaleX = particle.scaleY = randRange(0.1,0.5);
container.addChild(particle);
}
function randRange(low:Number,high:Number):Number{
var randNum:Number = Math.random()*(high - low)+ low;
return randNum;
}




Smoke class


package{

import flash.display.MovieClip;
import flash.events.Event;
import flash.utils.Timer;
import flash.events.TimerEvent;
//import fl.transitions.*;
import caurina.transitions.*

public class Smoke extends MovieClip{

private var posX:Number;
private var posY:Number;
//public var timer:Timer = new Timer(100);

public function Smoke(posX,posY){


//timer.addEventListener(TimerEvent.TIMER,Update);
//timer.start();
this.addEventListener(Event.ENTER_FRAME, Update);
}

public function Update(e:Event){
Tweener.addTween(this,{x:randRange(this.x-5,this.x+5),y:randRange(this.y-2,this.y-10),rotation:360,alpha:randRange(1,0.5),scaleY:ran dRange(1,0.5),scaleX:randRange(1,0.5),time:4,onCom plete:removeParticle});

}

function removeParticle(){
removeChild(this);
}

function randRange(low:Number,high:Number):Number{
var randNum:Number = Math.random()*(high - low)+low;
return randNum;
}

}
}