Skip to content

Ecce Signum

Immanentize the Empathy

  • Home
  • About Me
  • Published Works and Literary Matters
  • Indexes
  • Laboratory
  • RSS Feed

First Flash Experiment in a Long Time

2007-06-11 John Winkelman

Here it is. My first real experiment in Flash 9.

Click to play.

Because, first and foremost, Flash is a trip toy.

Code for this experiment here:

package {
 import flash.display.*;
 import flash.events.Event;
 import flash.geom.*;
 import flash.filters.BlurFilter;
 public class BitmapRotate2 extends Sprite {
 private var _graphic:PolyStar;
 private var _graphic2:PolyStar;
 private var _bitmap:BitmapData;
 private var _image:Bitmap;
 private var _m:Matrix;
 private var _blurFilter:BlurFilter;
 private var xSpeed:Number = .9;
 private var ySpeed:Number = 1.1;
 public function BitmapRotate2() {
 _graphic = new PolyStar(0,0,7,false,50,30,0,0xff0000,100,0x0000ff,100);
 _m = _graphic.transform.matrix;
 _blurFilter = new BlurFilter();
 addEventListener(Event.ENTER_FRAME,registerStage);
 }
 public function registerStage(event:Event) {
 if(stage) {
 removeEventListener(Event.ENTER_FRAME,registerStage);
 _graphic.x = 0
 _graphic.y = 0;
 _bitmap = new BitmapData(stage.stageWidth,stage.stageHeight,true,0xff000000);
 _image = new Bitmap(_bitmap);
 _m = _graphic.transform.matrix;
 _graphic2 = new PolyStar(stage.stageWidth/2,stage.stageHeight/2,9,true,stage.stageWidth/2-20,stage.stageWidth/6,0,0xff0000,100,0xff0000,0);
 addChild(_image);
 addEventListener(Event.ENTER_FRAME,onEnterFrame);
 }
 }
 private function onEnterFrame(event:Event) {
 _graphic.rotation+=5;
 _graphic.x = mouseX;
 _graphic.y = mouseY;
 _m = _graphic.transform.matrix;
 _bitmap.draw(_graphic,_graphic.transform.matrix);
 _bitmap.draw(_graphic2,_graphic2.transform.matrix);
 _bitmap.applyFilter(_bitmap,_bitmap.rect,new Point(),_blurFilter);
 }
 }
 }

The “PolyStar” class is here:

package {
 import flash.display.Shape
 public class PolyStar extends Shape{
 public function PolyStar($x:Number,$y:Number,$points:Number,$vertical:Boolean,$outerRad:Number,$innerRad:Number,$lineW:Number,$lineC:Number,$lineA:Number,$bgC,$bgA:Number) {
 var points:Number = $points*2;
 var angleDelta:Number = (Math.PI*2 / points);
 var angle:Number = 0;
 var anglex:Number = 0;
 var angley:Number = 0;
 graphics.lineStyle($lineW,$lineC,$lineA);
 if(typeof($bgC)=="number") {
 graphics.beginFill($bgC,$bgA);
 } else {
 graphics.beginGradientFill($bgC.type,$bgC.colors,$bgC.alphas,$bgC.ratios,$bgC.matrix);
 }
 if($vertical != true) {
 graphics.moveTo($outerRad,0);
 } else {
 graphics.moveTo(//change orientation of polygon
 Math.cos(angle + (angleDelta/2)) * $outerRad,
 Math.sin(angle + (angleDelta/2)) * $outerRad
 );
 }
 for(var i=0;i<points;i++) br=""> angle += angleDelta;
 var temp:Number = (i%2) ? $outerRad: $innerRad;
 if($vertical != true) {
 anglex = Math.cos(angle) * temp;
 angley = Math.sin(angle) * temp;
 } else {//change orientation of polygon
 anglex = Math.cos(angle + (angleDelta/2)) * temp;
 angley = Math.sin(angle + (angleDelta/2)) * temp;
 }
 graphics.lineTo(anglex,angley);
 }
 x = $x;
 y = $y;
 }
 }
 }

Enjoy!

Posted in ProgrammingTagged Flash

Post navigation

Festival 2007 Photos
Second Flash Experiment in A Long Time

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Personal website of
John Winkelman

John Winkelman in a diner in San Francisco

Archives

Categories

Posts By Month

June 2007
S M T W T F S
 12
3456789
10111213141516
17181920212223
24252627282930
« May   Jul »

Links of Note

Reading, Writing
Tor.com
Locus Online
The Believer
File 770
IWSG

Watching, Listening
Writing Excuses Podcast
Our Opinions Are Correct

News, Politics, Economics
Naked Capitalism
Crooked Timber

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org

© 2023 Ecce Signum

Proudly powered by WordPress | Theme: x-blog by wpthemespace.com