Forked from: ton's マトリックスの世界へようこそ diff:39 カタカナcam なんとなくマトリックスっぽいなにか forresto forked:1favorite:0lines:51license : All rights reserved modified : 2009-09-12 03:50:36 Embed Tweet // forked from ton's マトリックスの世界へようこそ //なんとなくマトリックスっぽいなにか package { import flash.display.BitmapData; import flash.display.Sprite; import flash.events.Event; import flash.media.Camera; import flash.media.Video; import flash.text.TextField; import flash.text.TextFormat; [SWF(backgroundColor=0x000000, frameRate=24)] public class MatrixCascade extends Sprite { private const W:int = 465; private const PW:int = W / 5; private const H:int = 465; private const PH:int = H / 8; private var video:Video = new Video(PW, PH); private var bmd:BitmapData = new BitmapData(PW, PH, false); private var lastFrame:Array = new Array(PW); private var charList:Array = [ " "," ", "ノ","ノ","ノ", "ニ","レ","ト","ソ","ン","リ", "ミ","ウ","シ","ツ","キ","モ", "ネ","オ","ヌ","タ","チ","テ"]; private var numChars:int = charList.length; private var tf:TextField = new TextField(); private var tt:TextFormat = new TextFormat("Hiragino Kaku Gothic Pro W3, Shin Go, Heisei Kaku Gothic W5, Courier New, sans-serif", 8, 0xffffff); public function MatrixCascade():void { tf.width = tf.height = W; addChild(tf); for (var i:int = 0; i < lastFrame.length; i++){ lastFrame[i] = new Array(PH); } video.attachCamera(Camera.getCamera()); //addChild(video); addEventListener(Event.ENTER_FRAME, onEnterFrameHandler); } private function onEnterFrameHandler(e:Event):void { bmd.draw(video); var str:String = ""; var h:int = bmd.height; var w:int = bmd.width; for (var i:int = 0; i < h; i++) { for (var j:int = 0; j < w; j++) { // var pixel:String = charList[int((bmd.getPixel(j, i) / 0xffffff) * numChars)]; // if (pixel == lastFrame[i][j]) { // str += pixel; // } else { // str += pixel; // } // lastFrame[i][j] = pixel; str += charList[int((bmd.getPixel(j, i) / 0xffffff) * numChars)]; } str += "\n"; } tf.text = str; tf.setTextFormat(tt); } } } Code Fullscreen Preview Fullscreen ascii camera katakana カタカナ Video attachCamera TextFormat height width addEventListener text Array addChild length Event.ENTER_FRAME Event String Sprite int sort new page view favorite forked pv397 RainbowCam forresto forked:2 favorite:1lines:35 (diff:50) tag: cam rainbow