package
{
import com.adobe.kuler.KLibService;
import com.adobe.kuler.events.GetResultEvent;
import flash.display.Loader;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.filters.BlurFilter;
import flash.net.URLRequest;
import flash.net.navigateToURL;
import flash.text.AntiAliasType;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
import org.papervision3d.view.BasicView;
[SWF(width="600", height="400", frameRate="25", backgroundColor="#FFFFFF")]
public class Main extends BasicView
{
private var message:TextField;
protected var openCube:OpenCube;
public function Main():void
{
super(600, 400, true, true);
setMessage();
getColor();
}
private function setImages():void {
var loader:Loader=new Loader();
loader.load(new URLRequest("coconnut_200x50.png"));
loader.addEventListener(MouseEvent.CLICK, onCoconnutClick);
loader.x=400;
addChild(loader);
var loader2:Loader=new Loader();
loader2.load(new URLRequest("ku_18pxBugOnly.png"));
loader2.addEventListener(MouseEvent.CLICK, onKulerClick);
loader2.x=582;
loader2.y=382;
addChild(loader2);
}
private function onCoconnutClick(e:Event):void {
navigateToURL(new URLRequest("http://www.coconnut.com/blog/"), "_blank");
}
private function onKulerClick(e:Event):void {
navigateToURL(new URLRequest("http://kuler.adobe.com"), "_blank");
}
private function setMessage():void {
var format1:TextFormat = new TextFormat();
format1.font="Verdana";
format1.size=10;
format1.color = 0x000000;
message = new TextField();
message.y=0;
message.text="loading colors...";
message.embedFonts=false;
message.autoSize=TextFieldAutoSize.LEFT;
message.antiAliasType=AntiAliasType.ADVANCED;
message.setTextFormat(format1);
addChild(message);
}
private function getColor():void {
var klib:KLibService=new KLibService("77EFFF8092F241D6FBEB7849EF34BC59");
klib.addEventListener(GetResultEvent.GET_RESULTS, onResults);
klib.getRecent();
}
private function onResults(e:GetResultEvent):void
{
setImages();
removeChild(message);
init3D(e.results.swatches);
}
private function init3D(colors:Array):void
{
this.camera.zoom=80;
this.camera.yaw(5);
openCube=new OpenCube(colors);
scene.addChild(openCube);
startRendering();
}
private var posX:Number;
private var posY:Number;
private var factor:Number = 40;
override protected function onRenderTick(event:Event=null):void
{
posX = (mouseX / width) - 0.5;
posY = (mouseY / height) - 0.5;
var blur:BlurFilter = new BlurFilter();
blur.blurX = Math.abs( factor * posX );
blur.blurY = Math.abs( factor * posY );
openCube.filters = [blur];
openCube.rotationX += factor * posY;
openCube.rotationY += factor * posX;
super.onRenderTick(event);
}
}
}