Melting miyaoka forked:3 favorite:14 lines:102 license : MIT License modified : 2009-07-28 09:13:45 package { import flash.display.*; import flash.events.*; import flash.filters.*; import flash.geom.*; import flash.net.*; import flash.system.LoaderContext; import caurina.transitions.Tweener; import flash.utils.Timer; [SWF(width = "465", height = "465", backgroundColor = 0xFFFFFF, frameRate = "60")] public class Melt extends Sprite { private var bmd:BitmapData; private var pipesURL:String = "http://pipes.yahooapis.com/pipes/pipe.run?_id=Tkmh9Xn63RGd9RQo37Vd_w&_render=rss&num=30&q=buildings"; private var urls:Array = []; private var index:int = 0; public function Melt() { //bg graphics.beginFill(0x0); graphics.drawRect(0, 0, SW, SH); Wonderfl.capture_delay( 9 ); //bmd bmd = new BitmapData(SW, SH, true, 0); addChild(new Bitmap(bmd)); //rss var loader:URLLoader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.TEXT; loader.addEventListener(Event.COMPLETE, loadListCompleteHandler); loader.load(new URLRequest(pipesURL)); } private function loadListCompleteHandler(e:Event):void { var loader:URLLoader = e.target as URLLoader; loader.removeEventListener(Event.COMPLETE, loadListCompleteHandler); var list:XML = new XML(loader.data); default xml namespace = media; for each(var element:Object in list..item) { urls.push(String(element.media::group.media::content.@url).replace("http://", "http://farm" + element.media::group.@farm + ".").replace("_m", "")); } loadNext(); var timer:Timer = new Timer(4000); timer.addEventListener(TimerEvent.TIMER, function ():void { loadNext(); }); timer.start(); } private function loadNext():void { var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadCompleteHandler); index = (index + 1 + (urls.length - 1) * Math.random()) % urls.length; loader.load(new URLRequest(urls[index]), new LoaderContext(true)); } private function loadCompleteHandler(e:Event):void { e.target.removeEventListener(Event.COMPLETE, loadCompleteHandler); var bmp:Bitmap = e.target.loader.content as Bitmap; addChild(bmp); // bmp.scaleX = bmp.scaleY = 1.8; bmp.x = (SW - bmp.width ) * Math.random(); //height*2 bmd var bmd2:BitmapData = new BitmapData(bmp.bitmapData.width, bmp.bitmapData.height * 2, true, 0); bmd2.draw(bmp.bitmapData); bmp.bitmapData = bmd2; //perlin var noise:BitmapData = new BitmapData(bmp.width, bmp.height, true, 0); noise.perlinNoise(noise.width* (Math.random()*0.1+0.1), noise.height* (Math.random()*0.5 +0.5) , 1, Math.random()*int.MAX_VALUE, false, false); bmp.y = -height; bmp.alpha = 0.8; Tweener.addTween(bmp, { y: 0, time: 2.0, onComplete: function ():void { Tweener.addTween(bmp, { y: SH * (0.5 + Math.random() * 0.3), time: Math.random() * 0.0 + 5.0, alpha:1.0, transition: "easeInOutCubic", onUpdate: function ():void { bmp.filters = [ new DisplacementMapFilter(noise, null, 1, 1, 0, bmp.y*2, DisplacementMapFilterMode.COLOR) ] }, onComplete: function ():void { var mtx:Matrix = new Matrix(); mtx.translate(bmp.x/bmp.scaleX, bmp.y/bmp.scaleY); mtx.scale(bmp.scaleX, bmp.scaleY); bmd.draw(bmp, mtx, null); removeChild(bmp); bmp = null; } }); } }); } } } var SW:Number = 465; var SH:Number = 465; var media:Namespace = new Namespace("http://search.yahoo.com/mrss/"); Code Fullscreen Preview Fullscreen almost reminds me doom by makc3d at 2009/07/30 21:29:33 uly mitien Sharakusai hacker_fimwf.. yoshimax bluepix nki2 fallen umhr xor ngtn sw_lucchini takaki8 : BitmapData effect 画像が溶けて下に流れ落ちる huixie : screen Save BitmapData effect Namespace index noise scaleY scaleX bitmapData Event.COMPLETE DisplacementMapFilterMode.COLOR transition content int.MAX_VALUE DisplacementMapFilter LoaderContext Tweener.addTween filters removeEventListener time alpha removeChild translate sort new page view favorite forked pv 106 forked from: Melting jmbyh521 forked:0 favorite:0 lines:102 ( diff:1 ) pv 296 forked from: Melting alexdolgov forked:0 favorite:0 lines:102 ( diff:2 ) pv 970 forked from: Melting ntaka206 forked:0 favorite:2 lines:102 ( diff:2 )