So the last couple of weeks I have been jacking around w/ Bitmaps and BitmapData. I've always wanted to try it but never had the courage. Now that I have, I wish I'd have done it sooner.
In this first example I'm just copying each pixel throwing it to the wind and using Tweener to animate it to a spot. I don't think Tweener is the best option course as you can see it runs slow. I'm also using Grant Skinner's Memory Gauge to illustrate how slow it is. This is just a proof of concept anyway.
Here is the Bitmap and BitmapData src v1
Here is the code
-
// code written by Josh Weatherspoon of http://swfitgood.com
-
-
import flash.display.*;
-
import caurina.transitions.Tweener;
-
//holds all the "pixels"
-
var pixHolder:Sprite = new Sprite();
-
//image of me in the library thru linkage
-
var img:Img = new Img();
-
//pixHolder.opaqueBackground = true;
-
-
addChild(pixHolder);
-
-
//array that will hold info of each pixel
-
var coords_array:Array = [];
-
-
//bitmapdata of the img
-
var bmd:BitmapData = new BitmapData(img.width, img.height, false);
-
//put the img bitmapdata in the new bitmapdata object
-
bmd.draw(img, new Matrix());
-
//I heard this helps performance
-
bmd.lock();
-
//loop thru each pixel
-
//i.e. i= 0; j = 0 then i=1; j = 0 then i = 2; j = 0 you get it right?
-
for (var i:int = 0; i <img.width; i++)
-
{
-
for (var j:int = 0; j <img.height; j++)
-
{
-
//create an obj to hold each pixels info
-
var coords:Object = {};
-
-
//var pixData:BitmapData = new BitmapData(1, 1, false, bmd.getPixel(i, j));
-
-
//var pixBit:Bitmap = new Bitmap(pixData, PixelSnapping.ALWAYS, true);
-
//in this example I decided to use a circlular graphic instead of a single bitmap
-
//for fun
-
var pixSprite:Sprite = new Sprite();
-
//make a pixSprite for each pixel
-
pixSprite.graphics.beginFill(bmd.getPixel(i, j), 1);
-
pixSprite.graphics.drawCircle(0, 0, 1);
-
//set the pixel to a random location on the stage
-
pixSprite.x = Math.random() * stage.stageWidth;
-
pixSprite.y = Math.random() * stage.stageHeight;
-
//pixSprite.filters = [new BlurFilter(5, 5, 3)];
-
//pixSprite.addChild(pixBit);
-
-
pixHolder.addChild(pixSprite);
-
//gather info to access each pixel individually
-
coords.sprite = pixSprite;
-
coords.x = i;
-
coords.y = j;
-
coords_array.push(coords);
-
}
-
}
-
bmd.unlock();
-
// on mouse over start animating
-
stage.addEventListener(MouseEvent.MOUSE_OVER, updating, false, 0, true);
-
-
function updating(evt:MouseEvent):void
-
{
-
// loop thru each pixel and move it to the original location
-
stage.removeEventListener(MouseEvent.MOUSE_OVER, updating);
-
for(var k:int = 0; k <coords_array.length; k++)
-
{
-
Tweener.addTween(coords_array[k].sprite, {x:coords_array[k].x, scaleX:1, scaleY:1, delay: .3, y:coords_array[k].y, transition:"linear", time:10});
-
}
-
}
Last 5 posts in actionscript
- Using Flash Player 10 to produce Dynamic Musical Notes - May 20th, 2008
- Flash Player 10 Dynamic Sound Generation - May 20th, 2008
- How to compile and examples for Flash Player 10 or ASTRO BETA - May 16th, 2008
- How to use Bitmap and BitmapData in ActionScript 3 - v2 - April 23rd, 2008
- How to add and remove Mediators in a actionscript-3 puremvc app - March 30th, 2008
Last 5 posts in as3
- Using Flash Player 10 to produce Dynamic Musical Notes - May 20th, 2008
- Flash Player 10 Dynamic Sound Generation - May 20th, 2008
- How to load Pixel Bender in Flash Player 10 - May 19th, 2008
- How to compile and examples for Flash Player 10 or ASTRO BETA - May 16th, 2008
- How to use Bitmap and BitmapData in ActionScript 3 - v3 - April 29th, 2008
Last 5 posts in Bitmap/BitmapData
- Flash Player 10 Dynamic Sound Generation - May 20th, 2008
- How to use Bitmap and BitmapData in ActionScript 3 - v3 - April 29th, 2008
- How to use Bitmap and BitmapData in ActionScript 3 - v2 - April 23rd, 2008
Last 5 posts in flash
- Using Flash Player 10 to produce Dynamic Musical Notes - May 20th, 2008
- Flash Player 10 Dynamic Sound Generation - May 20th, 2008
- How to load Pixel Bender in Flash Player 10 - May 19th, 2008
- How to compile and examples for Flash Player 10 or ASTRO BETA - May 16th, 2008
- How to use Bitmap and BitmapData in ActionScript 3 - v3 - April 29th, 2008

Josh Weatherspoon, A self-proclaimed millionaire who for some reason has to work as a Flash Developer, at Travelocity in Dallas(Southlake), TX.


Sorry, no comments yet.