package { import flash.display.Sprite; import flash.text.TextField; import flash.display.Graphics; import flash.display.CapsStyle; import flash.display.JointStyle; import flash.display.LineScaleMode; import flash.display.Shape; import flash.events.*; public class oxeFlash5 extends Sprite { private var mThings :Array = new Array(); private var mThingsv:Array = new Array(); [Bindable] private var mTick :Number = 0; private var numX :uint = 20; private var numY :uint = 20; private var sizX :uint = 15; private var sizY :uint = 15; private var gapX : int = 3; private var gapY : int = 3; private var offX :uint = 1 * sizX; private var offY :uint = 1 * sizY; public function oxeFlash5() { stage.frameRate = 20; for (var nx:uint = 0; nx < numX; nx++) { for (var ny:uint = 0; ny < numY; ny++) { var dx :Number = (nx / (numX - 1)) - 0.5; var dy :Number = (ny / (numY - 1)) - 0.5; dx *= 2; dy *= 2; var r :Number = Math.sqrt(dx * dx + dy * dy); var vel:Number = r * 3 - 0.5; var alf:Number = (1 - r) * Math.sqrt(4); var thing:Shape = new Shape; thing.x = nx * (sizX + gapX) + offX; thing.y = ny * (sizY + gapY) + offY; thing.graphics.lineStyle(0, 0xee0044, (1 - alf/3), false, LineScaleMode.NORMAL, CapsStyle .NONE, JointStyle .MITER ); thing.graphics.beginFill( 0x440022, alf * 0.6 + 0.4); thing.graphics.drawRect(-sizX/2, -sizY/2, sizX, sizY); mThings .push(thing); mThingsv.push(vel); addChild(thing); } } addEventListener(Event .ENTER_FRAME, handler_EnterFrame); addEventListener(MouseEvent.MOUSE_MOVE , handler_MouseMove ); } private function handler_EnterFrame(e:Event):void { mTick += 1.0; for (var n:uint = mThings.length - 1; n >=0 ; n--) { var thing:Shape = mThings[n]; mThings[n].rotation += mThingsv[n]; } } // not called. not sure why not. private function handler_MouseMove(e:Event):void { mTick += 1.0; for (var n:uint = mThings.length - 1; n >=0 ; n--) { var thing:Shape = mThings[n]; mThings[n].rotation += mThingsv[n]; mThings[n].rotation += mThingsv[n]; mThings[n].rotation += mThingsv[n]; mThings[n].rotation += mThingsv[n]; } } } }