Forked from: set0's flash on 2009-6-16 diff:4 forked from: flash on 2009-6-16 bossa5 forked:0favorite:2lines:61license : MIT License modified : 2009-06-17 03:28:52 Embed Tweet // forked from set0's flash on 2009-6-16 package { import flash.display.*; import flash.events.*; import flash.filters.*; import flash.geom.*; [SWF(width=465, height=465, frameRate=60, backgroundColor=0xffffff)] public class FlashTest3 extends Sprite { private var bar_list:Array = []; private var buffer:BitmapData = new BitmapData(465, 465, false); private var screen:Bitmap = new Bitmap(buffer); public function FlashTest3() { addChild(screen); stage.addEventListener(MouseEvent.MOUSE_MOVE, makeBar); addEventListener(Event.ENTER_FRAME, onEnterFrame); } public function makeBar(e:Event):void { bar_list.push(new Bar(stage.mouseX, stage.mouseY)); } private function onEnterFrame(e:Event):void { bar_list.push(new Bar(stage.mouseX, stage.mouseY)); var max:int = bar_list.length; buffer.colorTransform(buffer.rect, new ColorTransform(1, 1, 1, 1, 255, 255, 255, 0)); for (var i:int = 0; i < max; i++) { buffer.copyPixels(bar_list[i].bmp, bar_list[i].bmp.rect, new Point(bar_list[i].x, bar_list[i].y)); if (bar_list[i].moveBar() === false) { bar_list.splice(i, 1); i--; max--; } } } } } import flash.display.*; import flash.geom.*; class Bar { public var bmp:BitmapData; public var x:Number; public var y:Number; public function Bar(x:Number, y:Number) { this.bmp = new BitmapData(2, 2, false, 0x000000); this.x = x; this.y = y; } public function moveBar():Boolean { this.x += Math.random() * 10-5; this.y -= Math.random() * 5; if (this.x >= 465 || this.y >= 465) { return false; } return true; } } Code Fullscreen Preview Fullscreen hacker_8u6cp.. Kay : 煙っぽい mouseY mouseX Math.max copyPixels MouseEvent.MOUSE_MOVE splice push colorTransform addEventListener Bitmap ColorTransform BitmapData rect Boolean addChild length Event.ENTER_FRAME Event Point Array