In some cases I can’t help thinking that AS3 hasn’t made our live easier.
The same happened with the change that happened from the AS2 setRGB to AS3.
Specifies an RGB color for a Color object.
setRGB
This is what the ActionScript 2.0 Migration has to say about this:
ActionScript 2.0 | ActionScript 3.0 | Comments |
setRGB() Method | flash.geom.ColorTransform.color | The RGB color value can be set by using the color accessor property of the ColorTransform class. |
ActionScript 2 example code:
[as]
// AS2 Code
var my_color:Color = new Color(my_mc);
my_color.setRGB(0xFF0000); // my_mc turns red
[/as]
[as]
// AS2 Code (The Color class has been deprecated in favor of the flash.geom.ColorTransform class.)
import flash.geom.ColorTransform;
var colorTrans:ColorTransform = new ColorTransform();
colorTrans.rgb = 0xFF0000;
var trans:Transform = new Transform( my_mc);
trans.colorTransform = colorTrans;[/as]
and the same code in ActionScript 3:
[as]
// AS3 code
import flash.geom.ColorTransform;
// Changes my_mc’s color to red.
var newColorTransform:ColorTransform = my_mc.transform.colorTransform;
newColorTransform.color = 0xff0000;
my_mc.transform.colorTransform = newColorTransform;
[/as]
More code to write, for something that I don’t use very much. The next time I need to change an Objects color I probably need to search the solution on the web…
No, I going to fix this in a neat little package:
Save this file into: ‘nl.matthijskamstra.utils’
[as]
/**
* Color (AS3), version 1.0
*
* Enter description here
*
*
* ____ _ ____ * | __| _ __ ___ ___ | | __ |__ | * | | | '_ ` _ \ / __|| |/ / | | * | | | | | | | || (__ | < | | * | |__ |_| |_| |_| \___||_|\_\ __| | * |____| |____| * *
*
* @class : Color
* @author : Matthijs C. Kamstra [mck]
* @version : 1.0 - class creation (AS3)
* @since : 11-5-2008 0:22
*
*/
package nl.matthijskamstra.utils {
import flash.display.*;
import flash.events.*;
import flash.geom.ColorTransform;
public class Color {
// Constants:
public static var CLASS_REF = nl.matthijskamstra.utils.Color;
public static var CLASS_NAME : String = "Color";
public static var LINKAGE_ID : String = "nl.matthijskamstra.utils.Color";
/**
* Constructor
*
* @usage import nl.matthijskamstra.utils.Color; // import
* var __Color:Color = new Color ( this );
* @param $targetObj a reference to a movie clip or object
*/
public function Color( $targetObj:DisplayObject=null, $colorValue:uint = 0xff3333) {
// trace ( LINKAGE_ID + ' class instantiated');
if ($targetObj == null) { return; }
var newColorTransform:ColorTransform = $targetObj.transform.colorTransform;
newColorTransform.color = $colorValue;
$targetObj.transform.colorTransform = newColorTransform;
}
//////////////////////////////////////// Static ///////////////////////////////////////
static public function setRGB( $targetObj:DisplayObject = null, $colorValue:uint = 0xff3333) {
return new Color ( $targetObj, $colorValue);
}
} // end class
} // end package
[/as]
And now I hope you will never have to look for it again
Happy AS3 😉