// forked from psyark's ParallelLife // forked from psyark's forked from: convolution_life // /* 月刊 Web Designing vol.102 連載:エキソニモのVIEW-SOURCEより続きです。 オンライン板: http://exonemo.com/view-source/ psyarkへの質問 「“ラ”で思いつくことはなんですか?」 ライブコーディング。ちょうど一年前、ライブコーディングしてみたいと 某所でつぶやいたのですが、まさかその3ヵ月後に400人の前で することになるとは思っていませんでした。 最近では色々な機会でお誘いをいただくようになったので、 また新しいいたずらを仕込みたいなあと企んでいます。 その他の質問: http://wonderfl.net/user/ViewSource/codes */ package { import flash.display.*; import flash.filters.ConvolutionFilter; import flash.geom.ColorTransform; import flash.net.URLRequest; import flash.system.*; [SWF(width=465,height=465,frameRate=3,backgroundColor=0x333333)] public class ExonemoViewSource extends Sprite { public function ExonemoViewSource() { var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener("complete", function ():void { field.draw(loader); stage.addEventListener("enterFrame", function ():void { field.applyFilter(field, field.rect, field.rect.topLeft, step); field.paletteMap(field, field.rect, field.rect.topLeft, ruleR, ruleG, ruleB, null); }); }); var url:String = "http://assets.wonderfl.net/images/related_images/2/26/26d5/26d5521b3c26438ec800f995bf0f112dca07897f"; loader.load(new URLRequest(url),new LoaderContext(true)); var field:BitmapData = new BitmapData(465,465, true, 0); var step:ConvolutionFilter = new ConvolutionFilter(3, 3, [1, 1, 1, 1, 9, 1, 1, 1, 1], 0xFF, 0); var ruleR:Array = [0, 0, 0, 0xFF0000, 0, 0, 0, 0, 0, 0, 0, 0xFF0000, 0xFF0000]; var ruleG:Array = [0, 0, 0, 0x00FF00, 0, 0, 0, 0, 0, 0, 0, 0x00FF00, 0x0FF00]; var ruleB:Array = [0, 0, 0, 0x0000FF, 0, 0, 0, 0, 0, 0, 0, 0x0000FF, 0x0000FF]; addChild(new Bitmap(field)); } } } ラ