Hexagon tile grids

A small demo of how you interact with a tilebased grid. Documented source code included and the math behind it is fairly basic. Basically it builds a grid from code, rotates for 5 seconds every 5 seconds and highlights the tile your mouse is over. I couldn’t find a good example online so here it is.

Read more

Flag effect in ActionScript 3

What better image to use for a flag effect than an image by Derek Riggs (which you already have on your living room wall right? Not?)

Click on the flag !


Anyway, in this example I’ve experimented with using perlin noise as a displacementmap, and overlaying the same displacement map for a lighting effect. The lighting effect was tweaked using a colortransform, and the falloff on the flag (the right side is much more affected by the wind than the left side) was realized by mixing the perlinnoise map with a gradient. Here is the complete example with sourcecode included: Flag Effect (3817 downloads) . Note that Example1.as to Example4.as should be run from the flashdevelop project nummero uno, while this example (example5) should be run from project nummero duo. Example 1 – 4 just experiment with the basics, and the last example puts it all together with documentation.

Wrapping BitmapData in Actionscript 3

Sometimes you overlook the easiest solutions. I had implemented a wrapping bitmap in actionscript 2, by some complex copyPixels code, which would cut 1 to 4 pieces from the original image and put them together again, providing you with a bitmap that wraps.

Then I realized that there is a much easier solution, with more functionality as well (not only wrapping but tiling too). But surprised however that it performed much better too. Surprised because I would have thought that 4 copyPixel operations would have been faster than using the drawing API combined with beginBitmapFill.

I’ve wrapped (no pun intended) the idea into two utility classes, the first WrappingBitmap is a simple sprite which takes a bitmapdata as source and creates a tiling wrapping display object that you can scroll.
The second is a WrappingBitmapData class which subclasses BitmapData and overrides the scroll method to wrap.

Read more

Visual Reflections in ActionScript 3

I migrated the actionscript 2 version of my reflection class some time ago, but hadn’t gotten to posting it yet. I managed to whip up some examples of this new as 3 version. It’s not as feature rich as the as 2 version due to some changes between as 2 and as 3, but just as easy to use.

Some features:

  • simple setup, just do addChild (new Reflection (myContent)); and you are done
  • respects masks, scaling, etc and automatically adjusts to the correct position
  • allows you to grab (live) bitmap data of the reflection for those times you only need a bitmap
  • can be updated manually or automatically
  • simple samples included

Download the sources and examples here: As3 Reflection (688 downloads)

NOTE: the examples are FlashDevelop projects. The security is set to network, so they won’t run locally unless you compile and run them once through flashdevelop (FlashDevelop will update your security settings while running).

Consuming webservices in Flash 8

During a partial refactoring process of the Behrloo client system, one of the items on my list was the backend webservice result processing. Without going into a lot of detail how these services are wrapped, it suffices to say that somewhere in the application a couple of webservices are being initialized and utilized through the macromedia webservice classes.

You might be familiar with them, they come in several flavours, for example the WebServiceConnector and the Webservice class. Personally I don’t like to use the WebServiceConnector, mostly since the Webservice class is simple enough to use and tends to give you more control over what is happening.

Basic example

As a simple example of using this Webservice class, paste the following code onto the first frame of the timeline in a new fla document (on a sidenote, REAL applications are not written on a timeline, but for example purposes/quick proof of concepts, this will do just fine):

Read more