Programação
sistema básico de partículas em action script 3
///////////////////////////////////// // // Pedro Batista da Silva // basic particles system // www.pedro.edpt.net // 24092008@puncline.labs // ////////////////////////////////////// var myTimer = new Timer(1000); //definimos o timer myTimer.addEventListener(TimerEvent.TIMER , adiciona); //adicionamos um ouvinte de eventos do tipo TimerEvent.TIMER e chamamos a função adiciona myTimer.start(); //damos o start no timer function adiciona(ev:TimerEvent):void { //definimos a função var particle:obj = new obj(); //criamos uma nova instância da classe que está na library //aqui definimos posiçoes e variáveis particle.x = Math.random()* stage.stageWidth; particle.y = - particle.height; var rdm:Number = getRandomNumber(-3, 3); particle.rdm = rdm; //populamos o objecto com variáveis para serem passadas na função var rdmX:Number = getRandomNumber(-3, 3); particle.rdmX = rdmX; //populamos o objecto com variáveis para serem passadas na função particle.width = rdm * ( particle.width * 0.25 ); particle.height = rdm * ( particle.height * 0.25 ); particle.rotation = getRandomNumber(-180, 180); //fim de aqui definimos posiçoes e variáveis addChild (particle); //adicionamos a particle à display list particle.addEventListener(Event.ENTER_FRAME , cai); //adicionamos um event listener que ouve Event.ENTER_FRAME e chama a função cai } function cai(ev:Event):void { //definimos a função cai var newParticle:MovieClip = ev.target as MovieClip; //criamos uma nova instância de do tipo movieClip e é o target do evento e é passado como movieClip //posições aleatórias newParticle.y += newParticle.rdm; newParticle.x += newParticle.rdmX; //fim das posições aleatórias //controlamos a posição y if (newParticle.y > stage.stageHeight) { newParticle.removeEventListener(Event.ENTER_FRAME , cai) //se estiver fora, removemos o ouvinte.. //aqui removemos da display list //removeChild(newParticle); //podiamos ainda.. newParticle = null; } } //função que faz numeros aleatorios.. function getRandomNumber(min:Number, max:Number ):Number { var randomNum:Number; randomNum = Math.random() * (max - min + 1) + min; return randomNum; }