I just started playing around with drawing things using action script, specifically with “ColorTransform”.
I am able to set one transform just fine, but when I attempt to use a second transform to reset the movie clip to it’s original values I get an error. Can movie clips only have one ColorTransform, or is it because the movie clip is being generated through code?
Here is the code:
var targetX:Number
var targetY:Number
stage.addEventListener(MouseEvent.CLICK, onClick);
function onClick(event:MouseEvent):void
{
targetX = event.target.mouseX;
targetY = event.target.mouseY;
	if ((targetX + targetY) > 500)
	{
		makeRectangle();
	}
	
	else
	{
		makeCircle();
	}
}
function makeCircle():void
{
	var shape1:MovieClip = new MovieClip();
	shape1.graphics.lineStyle(5, 0x00ff00);
	shape1.graphics.beginFill(0x000000);
	shape1.graphics.drawCircle(targetX, targetY, 50);
	shape1.graphics.endFill();
	addEventListener(MouseEvent.ROLL_OVER, colorT);
	addEventListener(MouseEvent.ROLL_OUT, colorReset);
	addChild(shape1);
}
function makeRectangle():void
{
	var shape2:MovieClip = new MovieClip();
	shape2.graphics.lineStyle(5, 0x33ff00);
	shape2.graphics.beginFill(0x0000ff);
	shape2.graphics.drawRect(targetX, targetY, 50, 50);
	addEventListener(MouseEvent.ROLL_OVER, colorT);
	addEventListener(MouseEvent.ROLL_OUT, colorReset);
	addChild(shape2);
}
function colorT(event:MouseEvent):void
{
	trace("rollover!");
	var colorT:ColorTransform = new ColorTransform();
	colorT.blueOffset = -100;
	colorT.redOffset = 100;
	event.target.transform.colorTransform = colorT;
}
function colorReset(event:MouseEvent):void
{
	trace("rollout!");
	
	var colorReset:ColorTransform = new ColorTransform();
	
	colorReset.blueOffset = 100;
	colorReset.redOffset = -100;
	
	event.target.transform.ColorTransform = colorReset;
}