Forked from: pushka1971's forked from: ぱーてぃくる diff:1 forked from: forked from: ぱーてぃくる hacker_rarpa.. forked:1favorite:0lines:70license : All rights reserved modified : 2009-02-14 02:42:33 Embed Tweet // forked from pushka1971's forked from: ぱーてぃくる // forked from munegon's ぱーてぃくる // write as3 code here.. package { import flash.display.*; import flash.events.*; import flash.geom.*; public class BulletDemo extends Sprite { private var SPEED_FO:Number = 0.8; private var canvas_bd:BitmapData; private var ctf:ColorTransform; private var temp:Sprite; public function BulletDemo () { addEventListener( Event.ADDED_TO_STAGE, added ); } private function added( e:Event ):void { if ( e.target == this ) { removeEventListener( e.type, arguments.callee ); setup(); } } private function setup():void { canvas_bd = new BitmapData( stage.stageWidth, stage.stageHeight, false, 0xFFFFFF); addChild( new Bitmap( canvas_bd ) ); ctf = new ColorTransform( SPEED_FO, SPEED_FO, SPEED_FO, 1.0 ); temp = new Sprite(); addEventListener( Event.ENTER_FRAME, update, false, 10 ); } private function update( e:Event ):void { for ( var i:int = 0; i < 3; ++i ) { fire(); } canvas_bd.unlock(); canvas_bd.lock(); canvas_bd.colorTransform( canvas_bd.rect, ctf ); } private function fire():void { var x:Number = stage.stageWidth / 2; var y:Number = stage.stageHeight / 2; var v:Number = 3*Math.random(); var a:Number = 0.1; var r:Number = 2*Math.PI * Math.random(); var vx:Number = v * Math.cos( r ); var vy:Number = v * Math.sin( r ); var vr:Number = 0.03; var size:Number = 1 + 4*Math.random(); var color:uint = 0xffffff * Math.random(); var mtx:Matrix = new Matrix(); var bullet:Sprite = new Sprite(); bullet.graphics.beginFill( color ); bullet.graphics.drawCircle( 0, 0, size ); bullet.graphics.endFill(); temp.addChild( bullet ); bullet.addEventListener( Event.ENTER_FRAME, function( e:Event ):void { v += a; r += vr; vx = v * Math.cos( r ); vy = v * Math.sin( r ); x += vx; y += vy; mtx.tx = x; mtx.ty = y; canvas_bd.draw( bullet, mtx ); if ( canvas_bd.rect.contains( x, y ) == false ) { bullet.removeEventListener( e.type, arguments.callee ); bullet.graphics.clear(); temp.removeChild( bullet ); bullet = null; } }, false, 1 ); } } } Code Fullscreen Preview Fullscreen type color callee size addEventListener target contains unlock lock removeChild tx removeEventListener ty clear Event.ADDED_TO_STAGE drawCircle Math.cos endFill beginFill ColorTransform sort new page view favorite forked pv349 forked from: forked from: fork.. hacker_r9s9271d forked:0 favorite:0lines:70 (diff:8)