/**
* Copyright Etienne.Verhote ( http://wonderfl.net/user/Etienne.Verhote )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/fO05
*/
// forked from cursedboy's forked from: Electricity Effect
// forked from milkmidi's Electricity Effect
package {
/**
* ...
* @author milkmidi
http://milkmidi.blogspot.com
*/
import flash.display.Sprite;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.BlendMode;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
import flash.filters.DisplacementMapFilter;
import flash.filters.GlowFilter;
import flash.filters.DisplacementMapFilterMode;
import flash.geom.*;
import flash.utils.setTimeout;
[SWF(width = "465", height = "465", frameRate = "30", backgroundColor = "#0")]
public class Elect extends Sprite {
private const data:String = "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA9xJREFUeNrEV0toE1EUvUkmxJpEUHQjaFuL9VM34ocWFNEqCrpo60oquHNhET8guBDcaEEXgrgRtwoi+Fsp6sZlKYpaSWljqzGmiqS22lKbzudd582beXlvZt70g+Klycz7nvvOPffmNYaI0NJ+uXNsEq/qFq4Eu80M2cf5o19eG0PaBPg6/7jb5+3J3rCQiMXOfu65/ijW3HapM72i/k7TpjpYlEqyCRzU28eGQNYmxOtH9iF0zAXm/XLb3Yo7MqPrMJQfgJHixw6NnnzrrlpIJjV421dkCzx/UWABibsp8qc3LvbxdUKbs+Iebl1jA6xpaIRiYfhaXDfJSk1LQN97GbzqRdVzMTgq88CjbDA/BJqm0dc659s0reC2UtzEmMofzkJgDELeq6eyLMt505yG7QBlWJyACDJAVXNV/xDU/fbDmJ4EYuqc/nhCg2RqifMuOaCbpnAKz1nBc1HRouKBuDMICEqDX9/zMDE6DE2Nq2HJ0jQXdMVMQFnPOnNMy3QdsAdM3WLqFlNFFJAkrqqiudq5nwg/vryDrqM74diRi5DNpKWo9r4ZgNNXXjIGTNcButzQDfcUwukxPBRsDhEEW2VoarwE3ec6oP3Q7iiZMgZMzoAdAsPWgEWkKbIT6FO4kHpQrQsHd6yKBvfSmQvf1YBhmHIKChpQggsh8VjoPNwamX5xLcVJlBgwbQeImAaiCFHUhIoNNn9DY50EODH5G+4/z/E9v5UnuNAtS9SAYdAa60tXFPzw0S3knVgtAwXnQxFu3euVwul9G27mRTAgxx+U4L5SKxjdk/1QBdQl1gHCBEEwWFIlMYKUCd54+VMPVKZG3bknpD2ymRoYyT3lh0+ll8Hy2u1yGtIB6g0h4aVYlRHenLs3z8O2zetDRbdxXT2Uck94u+d1P5zsfsHYcfE0SpFHRzBnfNQhSHU3nPjZDGUHnPgREjpJJgN9zCAsAD3wa6kxWknwR9DviAI4mcrMGTyZygYOq0kXh6C74EvKQFiOX3jAx149PC0tL30tQ1vXbWFJEEdzdE2IinzFDURIScVKaiPfyuwqF+WAKoeDk9H3iAZXaSfoAISJMEwDEcCoVvxsVzRNus4oNpsXQ8FyGClMpxCNj5XnkrpKIFU1oPXl5/joLA7Y1rpv/2zJO59ubovTGdiz94By/NmTRyEhmFMxgb9mGv4H0KAIfUCx2PwBcYEexm38QqVSAfTf7f8x+MxMhT4K8UQ8dnZwoN/rmBcoRpVx21I1WSV43sa07UyMblDbfKrdIniN/q82x1wMtZYta313wmnI5UthUwsUvNR74/EfAQYA2LBjPIifyRUAAAAASUVORK5CYII="
private var logo_mc:Sprite;
private var glow:GlowFilter = new GlowFilter(0x00ffff, 1, 1, 1, 100, 1, false, true);
private var glow2:GlowFilter = new GlowFilter(0x00ffff, 0.6, 8, 8, 2, 1, false, false);
private var glow3:GlowFilter = new GlowFilter(0x6666ff, 0.8, 10, 10, 3, 1, false, false);
private var offset_y:Number = 2;
private var offset_x:Number = 2;
private var bounds:Object
private var w:Number;
private var h:Number;
private var _sourceBmp :BitmapData;
private var _displaceBmp :BitmapData;
private var _perlinNoiseBmp :BitmapData;
private var _offsetArray:Array = [new Point(), new Point()];
private var _displacementFilter:DisplacementMapFilter;
public function Elect() {
logo_mc = new Sprite();
logo_mc.addChild( Base64ImageLoader.load(data) );
setTimeout( _timeout , 100 );
}
private function _timeout():void {
logo_mc.x = (465 -logo_mc.width) >> 1;
logo_mc.y = (465 -logo_mc.height) >> 1;
addChild(logo_mc);
bounds = logo_mc.getBounds(logo_mc);
w = bounds.width + offset_x;
h = bounds.height + offset_y;
_sourceBmp = new BitmapData(w, h, true, 0);
_displaceBmp = new BitmapData(w, h, true, 0);
_perlinNoiseBmp = new BitmapData(w, h);
var bitmap:Bitmap = new Bitmap(_displaceBmp);
bounds.x -= offset_x / 2;
bounds.y -= offset_y / 2;
_sourceBmp.draw(logo_mc, new Matrix(1, 0, 0, 1, bounds.x * -1, bounds.y * -1));
this.addChild(bitmap)
bitmap.x = logo_mc.x + bounds.x;
bitmap.y = logo_mc.y + bounds.y;
_displacementFilter = new DisplacementMapFilter(_perlinNoiseBmp, new Point(), 1, 1, 25, 25,DisplacementMapFilterMode.COLOR);
logo_mc.filters = [glow2];
bitmap.blendMode = BlendMode.SCREEN;
bitmap.filters = [glow2, glow3];
this.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
}
private function enterFrameHandler(e:Event):void {
_offsetArray[0].x -= 2;
_offsetArray[1].x -= 1;
_perlinNoiseBmp.perlinNoise(10, 20, 3, 64, true, true, 1, true, _offsetArray);
_displaceBmp.applyFilter(_sourceBmp, _sourceBmp.rect,new Point(), glow);
_displaceBmp.applyFilter(_displaceBmp, _sourceBmp.rect, new Point(), _displacementFilter);
}
}
}
import flash.display.Loader;
import flash.utils.ByteArray;
import mx.utils.Base64Decoder;
class Base64ImageLoader {
public static function load(pData:String):Loader {
var _byteArray:ByteArray;
var _base64Decoder:Base64Decoder = new Base64Decoder();
var _loader:Loader;
_base64Decoder.decode(pData);
try {
_byteArray = _base64Decoder.toByteArray();
_byteArray.position = 0;
} catch (e:Error) {
return null;
}
_loader = new Loader();
_loader.loadBytes(_byteArray);
return _loader;
}
}