package virtue.effects
{
import com.greensock.easing.Bounce;
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.TimerEvent;
import flash.filters.ShaderFilter;
import flash.display.Shader;
import flash.utils.ByteArray;
import flash.utils.Timer;
import com.greensock.*;
/**
* ...
* @author virtue
*/
public class ThunderEffect extends MovieClip
{
[Embed("../../../bin/thunder.pbj", mimeType="application/octet-stream")]
private var PixelBenderThunderEffect:Class;
private var shader:Shader;
private var shaderFilter:ShaderFilter;
public var contrast:Number = 1.0;
private var timer:Timer;
private var repeats:int = 3;
private var duration:Number = 0.1;
private var myTween:TweenMax;
public function ThunderEffect()
{
init();
}
private function init(back:MovieClip):void
{
shader = new Shader(new PixelBenderThunderEffect() as ByteArray);
shaderFilter = new ShaderFilter(shader);
timer = new Timer(1000, 0);
timer.addEventListener(TimerEvent.TIMER, timerComplete, false, 0, true);
timer.start();
}
private function changeContrast():void
{
shader.data.contrast.value = [contrast];
background.filters = [shaderFilter];
}
private function timerComplete(e:TimerEvent):void
{
timer.delay = randomNumber(5000, 30000);
repeats = int( randomNumber(1, 7) );
if (repeats % 2 == 0)
{
repeats++;
}
myTween = new TweenMax(this, duration, { contrast:1.5, onComplete:launchSound, onUpdate:changeContrast, ease:Bounce.easeInOut, repeat:repeats, yoyo:true } );
}
private function launchSound():void
{
//Insira aqui seu código para tocar o som
}
private function randomNumber(low:Number, high:Number):Number
{
return Math.round(Math.random() * (high - low)) + low;
}
}
}