Do for simple flash buttons what ImageButtonSkin does for flex Buttons.
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@714 ed5b42cb-e716-0410-a449-f6a68f950b19
This commit is contained in:
@@ -0,0 +1,54 @@
|
|||||||
|
//
|
||||||
|
// $Id$
|
||||||
|
|
||||||
|
package com.threerings.flash {
|
||||||
|
|
||||||
|
import flash.display.Bitmap;
|
||||||
|
import flash.display.BitmapData;
|
||||||
|
import flash.display.SimpleButton;
|
||||||
|
import flash.display.Sprite;
|
||||||
|
|
||||||
|
import flash.geom.ColorTransform;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Takes a BitmapData and makes a button that brightens on hover and depresses when pushed.
|
||||||
|
*/
|
||||||
|
public class SimpleIconButton extends SimpleButton
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Constructor.
|
||||||
|
*
|
||||||
|
* @param icon a BitmapData, or Bitmap (from which the BitmapData will be extracted), or
|
||||||
|
* a Class that instantiates into either a BitmapData or Bitmap.
|
||||||
|
*/
|
||||||
|
public function SimpleIconButton (icon :*)
|
||||||
|
{
|
||||||
|
var bmp :BitmapData;
|
||||||
|
if (icon is Class) {
|
||||||
|
icon = new (Class(icon))();
|
||||||
|
}
|
||||||
|
if (icon is BitmapData ) {
|
||||||
|
bmp = BitmapData(icon);
|
||||||
|
} else if (icon is Bitmap) {
|
||||||
|
bmp = Bitmap(icon).bitmapData;
|
||||||
|
} else {
|
||||||
|
throw new Error("Unknown icon spec: must be a Bitmap or BitmapData, or a Class " +
|
||||||
|
"that becomes one.");
|
||||||
|
}
|
||||||
|
|
||||||
|
upState = new Bitmap(bmp);
|
||||||
|
hitTestState = upState;
|
||||||
|
overState = new Bitmap(bmp);
|
||||||
|
|
||||||
|
var down :Sprite = new Sprite();
|
||||||
|
var downBmp :Bitmap = new Bitmap(bmp);
|
||||||
|
downBmp.y = 1;
|
||||||
|
down.addChild(downBmp);
|
||||||
|
downState = down;
|
||||||
|
|
||||||
|
const bright :ColorTransform = new ColorTransform(1.25, 1.25, 1.25);
|
||||||
|
overState.transform.colorTransform = bright;
|
||||||
|
downState.transform.colorTransform = bright;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user