ColorBall
package {
import flash.display.*;
import flash.events.*;
import flash.filters.BlurFilter;
import org.libspark.betweenas3.BetweenAS3;
import org.libspark.betweenas3.tweens.ITween;
import org.libspark.betweenas3.easing.*;
[SWF(backgroundColor="#000000", frameRate=60)]
public class ColorBall extends Sprite {
private var color:Number = 0;
private var colorNum:Number = 0;
public function ColorBall() {
stage.addEventListener( MouseEvent.MOUSE_MOVE, MouseMove );
}
private function MouseMove( event:MouseEvent ):void {
var colorSpeed:Number = 5;
color += colorSpeed;
if ( color > 255 ) { color = 0, colorNum++ };
if ( colorNum > 5 ) { colorNum = 0 };
var _ball:Ball = new Ball( color, colorNum );
_ball.x = stage.mouseX;
_ball.y = stage.mouseY;
var blur:BlurFilter = new BlurFilter(10, 10, 2);
_ball.filters = [blur];
addChild( _ball );
tweenSet( _ball );
}
private function tweenSet( _ball:Ball ):void {
var startT:ITween = BetweenAS3.tween(_ball, {alpha: 1}, {alpha: 0}, 0.3, Quart.easeIn);
var endT:ITween = BetweenAS3.tween(_ball, { alpha: 0 }, { alpha: 1 }, 2, Quart.easeOut);
var serealT:ITween = BetweenAS3.serial( startT, endT );
serealT.play();
}
}
}
import flash.display.Sprite;
import flash.display.Graphics;
class Ball extends Sprite {
public function Ball( color:Number, colorNum:Number ):void {
var myGraphics:Graphics = graphics;
myGraphics.beginFill( setColor( color, colorNum ) );
myGraphics.drawCircle( 0, 0, 80 );
}
private function setColor( color:Number, colorNum:Number ):Number {
switch ( colorNum ) {
case 0:
color = 0xFF0000 + color * Math.pow( 16, 2 );
break;
case 1:
color = 0xFFFF00 - color * Math.pow( 16, 4 );
break;
case 2:
color = 0x00FF00 + color;
break;
case 3:
color = 0x00FFFF - color * Math.pow( 16, 2 );
break;
case 4:
color = 0x0000FF + color * Math.pow( 16, 4 );
break;
case 5:
color = 0xFF00FF - color;
break;
}
return color;
}
}