forked from: Glitch 2
forked from Glitch 2 (diff: 1)
ActionScript3 source code
/**
* Copyright moonthug ( http://wonderfl.net/user/moonthug )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/bR2l
*/
// forked from Ctrl's Glitch 2
/*
Glitch 2
By Ctrl
*/
package
{
import flash.display.Sprite;
import flash.display.Loader;
import flash.events.*;
import flash.events.MouseEvent;
import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.utils.ByteArray;
import flash.utils.Timer;
[SWF(backgroundColor="#000", frameRate="10")]
public class Glitch extends Sprite
{
private const HEADER:int = 4444;
private var data:ByteArray;
private var origin:ByteArray;
private var display:Loader;
public function Glitch()
{
stage.align = "TL";
stage.scaleMode = "noScale";
var loader:URLLoader = new URLLoader();
loader.dataFormat = "binary";
loader.addEventListener(Event.COMPLETE, onComplete);
loader.load(new URLRequest("http://2.bp.blogspot.com/_McL0_OWcuUs/SxgL5FbzJlI/AAAAAAAAAFw/oGFmUWu7g9o/s400/pulp-32-565x581.jpg"));
display = new Loader();
addChild(display);
display.scaleX = 1.2;
display.scaleY = 1.2;
var time:Timer = new Timer(500);
time.addEventListener(TimerEvent.TIMER, reset);
time.start();
}
private function onComplete(e:Event):void {
origin = e.target.data;
data = new ByteArray();
data.writeBytes(origin)
addEventListener(Event.ENTER_FRAME, loop);
stage.addEventListener(MouseEvent.MOUSE_DOWN, reset);
}
private function loop(e:Event):void {
data.position = Math.floor((data.length - HEADER) * Math.random()) + HEADER;
data.writeByte(0);
display.loadBytes(data);
}
private function reset(e:Event):void {
data.clear();
data.writeBytes(origin);
}
}
}
