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;
}