Month: June 2007
Obligatory Squirrel Post
And Another One!
Click here to launch the experiment.
I figured out how to implement double buffering in Flash this morning, and this is the result: 500 particles, with transparency and a blur filter.
If this seems to run slow, click on the headline to this article to open the Flash movie in a page where it isn’t competing for resources with the other experiments.
Another One. This is Too Much Fun!
Click here to launch the experiment.
This is 100 particles following a simple curve formula. Anything repeated 100 times is going to be kind of interesting.
More Festival Photos
I have just uploaded 18 more photos of our Festival of the Arts performance. These were taken a few days before the actual performance, when our photographer came to our practice space to get a feel for what we would be doing.
As always, update notices will be posted here as I upload more photos.
Market Day
This is what $31.00 bought me at the Fulton Street Farmer’s Market this morning. Is it cheaper than what I would have paid at a local grocery store? Probably. Fresher? Almost certainly. More neighborly? Absolutely!
And the specific items which were bought at a wholesaler and resold here (and you KNOW it happens)…well, I would still rather buy it here than in a supermarket.
…And FYI, the little zip-loc bag between the asparagus and the tomatoes is cilantro, not pot – although I imagine people selling pot at a farmer’s market would make a KILLING!
I Have No Idea What You Are Talking About
Second Flash Experiment in A Long Time
First Flash Experiment in a Long Time
Here it is. My first real experiment in Flash 9.
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!



