forked from: soundchaos core
forked from soundchaos core (diff: 55)
♥0 |
Line 100 |
Modified 2010-05-07 13:45:03 |
MIT License
archived:2017-03-30 10:50:28
| (replaced)
ActionScript3 source code
/**
* Copyright wh0 ( http://wonderfl.net/user/wh0 )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/m2PR
*/
package {
import mx.utils.Base64Decoder;
import flash.display.*;
import flash.events.*;
import flash.system.*;
import flash.net.*;
import flash.media.*;
import flash.filters.*;
[SWF(backgroundColor='#000000', width=380, height=216)]
public class SoundChaos extends Sprite {
private static const PROXY:String = 'http://5ivestar.org/proxy/';
private static const SERVER:String = 'http://www.google.com/recaptcha/api/';
private static const KEY:String = '6LcFAAAAAAAAAO3J7S8Djh3uV9stj1GR57EeSdr-';
private static const CONTEXT:LoaderContext = new LoaderContext(true);
private const scrapeChallenge:RegExp = /challenge:'(.+?)'/;
private const scrapeReload:RegExp = /Recaptcha.finish_reload\('(.+)', 'audio'\);/;
private var c:String;
private var qty:int = 0;
private var src:Video;
private var sf:ShaderFilter;
private var ns:NetStream;
public function SoundChaos() {
Security.loadPolicyFile(PROXY + 'crossdomain.xml');
stage.scaleMode = StageScaleMode.NO_SCALE;
var nc:NetConnection = new NetConnection();
nc.connect(null);
ns = new NetStream(nc);
ns.addEventListener(NetStatusEvent.NET_STATUS, loop);
ns.play('http://www.istockphoto.com/video_passthrough.php/11662685/65/11662685.flv');
//ns.play('http://www.istockphoto.com/video_passthrough.php/12194254/65/12194254.flv');
src = new Video(380, 216);
src.attachNetStream(ns);
var ll:Loader = new Loader();
ll.contentLoaderInfo.addEventListener(Event.COMPLETE, loGet);
ll.load(new URLRequest('http://assets.wonderfl.net/images/related_images/9/9f/9fde/9fde781cea66f12057a884e1e67a6c79dd605c28'), CONTEXT);
var hl:Loader = new Loader();
hl.contentLoaderInfo.addEventListener(Event.COMPLETE, hiGet);
hl.load(new URLRequest('http://assets.wonderfl.net/images/related_images/e/ed/ed00/ed007fbcbba77a94c3fed31bf7c35156652d3150'), CONTEXT);
var d:Base64Decoder = new Base64Decoder();
d.decode('oQECAAAMX091dENvb3JkAKEBAgQADGQAowAEc3JjAKMBBGxvAKMCBGhpAKECBAEAD2RzdAAdBQDBAAAQAAIFAMEEABAAMAEA8QAAEAAwAgDxBQAQATADAPEFABACAgEA4gIAGAACAwDiAgAYAAUBAOIDABgA');
sf = new ShaderFilter(new Shader(d.toByteArray()));
sf.shader.data.d.value = [0, 0];
challenge();
}
private function challenge():void {
var req:URLRequest = new URLRequest(PROXY + SERVER + 'challenge');
req.method = URLRequestMethod.GET;
req.data = new URLVariables();
req.data['k'] = KEY;
req.data['lang'] = 'en';
req.data['rand'] = Math.random();
var ul:URLLoader = new URLLoader();
ul.addEventListener(Event.COMPLETE, handleChallenge);
ul.load(req);
}
private function handleChallenge(e:Event):void {
c = scrapeChallenge.exec(e.target.data)[1];
reload('a');
}
private function reload(r:String):void {
var req:URLRequest = new URLRequest(PROXY + SERVER + 'reload');
req.method = URLRequestMethod.GET;
req.data = new URLVariables();
req.data['c'] = c;
req.data['k'] = KEY;
req.data['type'] = 'audio';
req.data['lang'] = 'en';
req.data['audio_beta_12_08'] = '1';
var ul:URLLoader = new URLLoader();
ul.addEventListener(Event.COMPLETE, handleReload);
ul.load(req);
}
private function handleReload(e:Event):void {
c = scrapeReload.exec(e.target.data)[1];
var req:URLRequest = new URLRequest(SERVER + 'image');
req.method = URLRequestMethod.GET;
req.data = new URLVariables();
req.data['c'] = c;
new Sound(req).play();
reload('r');
}
private function loop(x:*):void {
if (x.info.code == 'NetStream.Play.Stop')
ns.seek(0);
}
private function loGet(e:Event):void {
sf.shader.data.lo.input = e.target.content.bitmapData;
if (++qty == 2)
done();
}
private function hiGet(e:Event):void {
sf.shader.data.hi.input = e.target.content.bitmapData;
if (++qty == 2)
done();
}
private function done():void {
src.filters = [sf];
addChild(src);
}
}
}