Necesitaba aprender a usar la API de dibujo de flash AS3 y el resultado es este :
Este es el codigo fuente de la clase que genera el rayo :
package mx.com.motion.fx.lighting {
import flash.display.Sprite;
import flash.geom.Point;/**
* …
* @author www.motion.com.mx
*/
public class Rayo {
public function Rayo ( obj:Sprite , p1:Point , p2:Point , intensity:Number , steps:Number ) {
obj.graphics.moveTo( p1.x, p1.y );
var distX:Number = p2.x – p1.x
var distY:Number = p2.y – p1.y
var randomX:Number
var randomY:Number
for (var l:int = 0; l < steps ; l++) {
randomX = p1.x + ((distX / steps ) *l + Math.random() * intensity)
randomY = p1.y + ((distY / steps ) *l + Math.random() * intensity)
obj.graphics.lineTo(randomX, randomY);
}
obj.graphics.lineTo( p2.x, p2.y );
}
}
}
Creo que deberia de convertirla a una clase tipo “Static” porque en realidad todas las acciones son hechas en el constructor y nunca se usa despues de inicializarla , pero eso lo dejo para despues.
La clase es bastante sencilla , agregandole un poco de Glow/Blur se pueden lograr cosas interesantes.
actualizacion 24 abril 2009 :
Pierluigi Pesenti creo un efecto de rayo que tiene un comportamiento muy diferente al mio , parece que logro el efecto usando Perlin Noise , pueden ver el post en su blog : http://blog.oaxoa.com/2009/04/23/actionscript-3-lightning-class-first-tests/


