Let me introduce the new version of ScaleBitmap :

ScaleBitmap

I have totally rewritten ScaleBitmap to suit my needs :

  • Better usage of memory : no more creation of BitmapData instance (possibility to swap BitmapData)
  • Outer drawing capability
  • ScaleBitmapSprite

The outer drawing & ScaleBitmapSprite allows you to :

  • Easily deal with shadow, glow, overlapping icon effects
  • Use real size & position to align or place your elements

Usage 1 : ScaleBitmap

ScaleBitmap.draw(
bitmap : BitmapData, // the bitmap source
graphic:Graphics, // the destination graphic
width:Number, // width (defined by outer rectangle if not null)
height:Number, // height (defined by outer rectangle if not null)
inner : Rectangle, // inner rectangle for scale 9
outer : Rectangle=null // outer rectangle : visual size reference
):void

If outer is not null, ScaleBitmap use a negative offset for drawing (according to outer properties)
If outer is null, ScaleBitmap works as a classic Scale9 grid drawer

Usage 2 : ScaleBitmapSprite

ScaleBitmapSprite(
bitmap : BitmapData, // the bitmap source
inner : Rectangle, // inner rectangle for scale 9
outer : Rectangle=null) // outer rectangle : visual size reference

var s:ScaleBitmapSprite=new ScaleBitmapSprite(mySkin, new Rectangle(20,20,80,20), new Rectangle(15,15,90,30));
addChild(s);
s.width=80;
s.height=40;</a>

ScaleBitmapSprite override public size setter & getter : you can move & resize a ScaleBitmapSprite object without taking care of bitmap outer drawing.

Simple MyButton class using ScaleBitmapSprite (click the button) :

A Flash animation should have appeared here, but it seems that your browser has an older version of the Flash Player or it is not installed at all. Please, install the last release of the Flash Player now, then reload this page.


Sources FCS4 [ require Eaze to compile]

Download ScaleBitmap & ScaleBitmapSprite :
Repository : http://gist.github.com/264250

Some of you prefer gist, so as possible, I will share my new projects via gist.

Hope this class help & merry Xmas to bytearray readers.

[EDIT 2010-05-18]

A new version 1.1 is available !

Jerôme Decoster, a talented french developer have made a lot of improvements in this new version :

  • smooth support
  • invalidation for ScaleBitmapSprite
  • code optimization
  • inner drawing correction

So many thanks to you Jerôme :)

Repository : http://gist.github.com/264250