Saturday, September 27, 2008

Grden's Papervision Optimization Course

I just participated in John Grden's online Papervision course found at Rich Media Institute.

It was a great experience. Lots of little gems to take away and apply to future projects. I think the best part is that many of these gems can be applied to Flash in general, not just Papervision. Altho there were plenty of Papervision specifics covered as well.

I had a little bit of an issue and missed the first hour because my comcast modem decided to die... which means I missed John's bongos ;) But I was able to catch up fairly quickly and I have access to the materials for the next 30days, plus I was given tons of example code to filter through.

All and all, I think it was a great experience and would recommend it to anyone looking into getting deeper into Papervision and optimizing their Flash files in general.

Saturday, September 20, 2008

ActionScriptHero: Building a Flash Community

Most of you have probably stumbled across posts about the ActionScriptHero site lately, either from the feeds or from blog posts of "heroes" who were interviewed.

If you haven't checked it out, it may be time to do so. At first it appears to be a blog about Flash Heroes (or Legends), which is definitely a worthwhile read in itself, but there also is a community aspect to the site.

For those of you who were interested in my recent Freelancer post, you definitely need to add your name to the ActionScriptHero Freelance Directory. There is hardly any names on there now, but I am sure it could blow up into a great asset soon.

The site doesn't seem to have a huge following yet, but its easy to see the potential is there.

Friday, September 19, 2008

Installing SVN on Eclipse 3.4 Ganymede

I recently added SVN to eclipse on a couple machines for an upcoming project. You can find the basic instructions here under the Ganymede Release.

For the most part those instructions were fine, but I ran into a an issue on one of the machines. I could not get Ganymede/Collaboration Tools to come up as an option within Software Updates. To solve this, add the following site manually:
http://download.eclipse.org/releases/ganymede/staging/

Once you have the basic SVN installed, update the following two sites as well:
http://www.polarion.org/projects/subversive/download/eclipse/2.0/ganymede-site/
http://www.polarion.org/projects/subversive/download/integrations/ganymede-site/

And now you should be good to go. I am not sure why one machine acted differently since they are both have the same hardware and operating system. It could have just been a fluke, but I wanted to post this in case someone hit the same issue (or if I needed the links again :P ).

Wednesday, September 17, 2008

Need: Badass Flash Developer (FullTime or Freelance)

The Basement has been getting a bit swamped lately, which means we are opening the doors for applications. Fresh Fish! Please check out the following post on Crop to learn more about the gig and how to apply.

Monday, September 15, 2008

Art vs. Art: Indianapolis

Stan here at the basement recently entered a pretty cool fund raiser event called Art vs. Art.

Basically local artists have entered pieces into the competition. You can vote on 3 pieces you like the most (Stan's piece can be found here). The top 32 pieces will get auctioned off at the Vogue on Sept 26th. The cool part is, if they don't get auctioned for enough money they get destroyed by a spin on the "wheel of death".

If you are in the Indy area, check out the Vogue on Sept 26th. Should be a good time.

Wednesday, September 10, 2008

VerveEarth: Blog Reader by Geography

Amy from the Basement recently showed me a site called VerveEarth.

Basically you can navigate across the globe similar to Google Maps and while you are doing so it will show different blogs in that region. You can then narrow down the blogs shown by selecting various tags. It seems like a very cool tool for exploring and finding new material to read. It appears to be similar to twitter in that you can become followers/fans of certain bloggers and receive updates when they post.

I am interested in seeing if I get any/many hits from that site. Not sure if there would be a large Flash following there, but it could bring in some readers from outside of the typical sources.

Side note: I was recently accepted on FullAsAGoog. It is similar to Adobe Feeds and FlashBookMarks, although I think it has been around a lot longer... at least that is the rumor on the street. Lots of good material cycling through, check it out if you get a chance.

Tuesday, September 2, 2008

Fun with Particles and Filters (AS3) Part 3

In Part 1 I used Movieclips to recreate smoke.

In Part 2 I used Blitting and greatly increased performance but struggled with the alpha change (solution discussed in comments of that post).

And now for Part 3, which I promised over a month ago that I would post more detail about the Blitting process.

Here goes my attempt... let me know if I need to clarify anything:
To implement the Blitting Technique you will need create a "Canvas" bitmap that will be the only DisplayObject that you will add to the stage.

Create 1 Sprite/MovieClip of the item that you will be making copies of. Do do not add this item to the screen. Instead, just store its BitmapData to be used later.

Next, create a pool of Objects that store "x", "y", and any other parameters that you would like. These Objects will represent the Sprite/MovieClip we created above. Each time you are ready to render, loop through the Objects and update their "x" and "y" parameters.

Once all the Objects have been updated, lock your "Canvas" bitmap to prevent the Flash player from trying to render while you are updating. Now loop through each Object and copy the pixels from the BitmapData you stored at the beginning and place them on the Canvas at the Object's given x/y location. Once all the objects have been copied to the Canvas, unlock it.

If I haven't confused you yet, you just successfully implemented a basic BLIT. I say "basic" because it only uses 1 BitmapData to be copied which restricts you from having multiple frames and restricts you from making changes in rotations/alpha/scale.

In order to create the Smoke from Part 1 and Part 2, I had to change both the alpha and the scale.

To tackle the scale I created a new BitmapData for every possible scale value that I allowed (I limited the possible values to a certain range that would increment by a certain amount. ex: 1-10 by .5, so 20 BitmapData items). I stored each of these BitmapData items in a "HashMap" to be retrieved later and used their scale value as their key in the Hashmap.

I then added a "scale" parameter to the Objects in the pool and updated their scale when I updated their x/y. I would use the scale of the Object to retrieve the correct BitmapData item from the hashmap.

I tackled the alpha in a similar fashion, but instead of storing BitmapData I stored a different ColorMatrixFilter to represent every possible alpha I wanted to display. I then applied the Filter before I copied the pixels from the BitmapData.

Hopefully I explained things clearly. Please let me know if I need to clean anything up.