PDA

View Full Version : fun with kuler



joshchernoff
May 26th, 2007, 11:15 PM
I would like to see what other people can do with this code.
I'm not a good code writer and I'm kinda at the end of my abilities until I learn some more.

any how feel free to play with this kuler app I made.
all drawing is from the api so paste in to a blank file. no library needed

example
http://gfxcomplex.com/labs/kulerApp2.html




var myXML:XML = new XML();
var XML_URL:String = "http://kuler.adobe.com/kuler/services/search/get.cfm?searchQuery=joshchernoff";
var myXMLURL:URLRequest = new URLRequest(XML_URL);
var myLoader:URLLoader = new URLLoader(myXMLURL);
myLoader.addEventListener("complete", xmlLoaded);
import flash.events.TextEvent;

var rgbHex:Array = new Array();
var holder:Array = new Array();

var time:Timer = new Timer(5000);
var countDown:Timer = new Timer(50, 100);

time.addEventListener(TimerEvent.TIMER, changeColor);
countDown.addEventListener(TimerEvent.TIMER, alphaTo);

var nodes1:uint = 0;
var node:uint = 0;



function numRoundTo(n:Number, p:Number):Number {
return Math.round(Math.pow(10,p) * n) / Math.pow(10,p);
}

function xmlLoaded(event:Event):void {
myXML = XML(myLoader.data);
for (var theme in myXML.themeList.theme) {

var red1 = numRoundTo(myXML.themeList.theme[theme].swatches.swatch[0].c1 * 255, 0);
var green1 = numRoundTo(myXML.themeList.theme[theme].swatches.swatch[0].c2 * 255, 0);
var blue1 = numRoundTo(myXML.themeList.theme[theme].swatches.swatch[0].c3 * 255, 0);
var rgb1 = hexColor(red1,green1,blue1);

var red2 = numRoundTo(myXML.themeList.theme[theme].swatches.swatch[1].c1 * 255, 0);
var green2 = numRoundTo(myXML.themeList.theme[theme].swatches.swatch[1].c2 * 255, 0);
var blue2 = numRoundTo(myXML.themeList.theme[theme].swatches.swatch[1].c3 * 255, 0);
var rgb2 = hexColor(red2,green2,blue2);

var red3 = numRoundTo(myXML.themeList.theme[theme].swatches.swatch[2].c1 * 255, 0);
var green3 = numRoundTo(myXML.themeList.theme[theme].swatches.swatch[2].c2 * 255, 0);
var blue3 = numRoundTo(myXML.themeList.theme[theme].swatches.swatch[2].c3 * 255, 0);
var rgb3 = hexColor(red3,green3,blue3);

var red4 = numRoundTo(myXML.themeList.theme[theme].swatches.swatch[3].c1 * 255, 0);
var green4 = numRoundTo(myXML.themeList.theme[theme].swatches.swatch[3].c2 * 255, 0);
var blue4 = numRoundTo(myXML.themeList.theme[theme].swatches.swatch[3].c3 * 255, 0);
var rgb4 = hexColor(red4,green4,blue4);

var red5 = numRoundTo(myXML.themeList.theme[theme].swatches.swatch[4].c1 * 255, 0);
var green5 = numRoundTo(myXML.themeList.theme[theme].swatches.swatch[4].c2 * 255, 0);
var blue5 = numRoundTo(myXML.themeList.theme[theme].swatches.swatch[4].c3 * 255, 0);
var rgb5 = hexColor(red5,green5,blue5);


//trace (hexColor(red,green,blue));
rgbHex[theme] = rgb1;
rgbHex[theme] = rgb2;
rgbHex[theme] = rgb3;
rgbHex[theme] = rgb4;
rgbHex[theme] = rgb5;


holder[theme] = new Sprite();
addChild(holder[theme]);

var square1:Sprite = new Sprite();
square1.graphics.beginFill(rgb1);
square1.graphics.drawRoundRect(0, 0, 75, 150, 10, 0);
square1.graphics.endFill();
holder[theme].addChild(square1);

var square2:Sprite = new Sprite();
square2.graphics.beginFill(rgb2);
square2.graphics.drawRoundRect(75, 0, 75, 150, 10, 0);
square2.graphics.endFill();
holder[theme].addChild(square2);

var square3:Sprite = new Sprite();
square3.graphics.beginFill(rgb3);
square3.graphics.drawRoundRect(150, 0, 75, 150, 10, 0);
square3.graphics.endFill();
holder[theme].addChild(square3);

var square4:Sprite = new Sprite();
square4.graphics.beginFill(rgb4);
square4.graphics.drawRoundRect(225, 0, 75, 150, 10, 0);
square4.graphics.endFill();
holder[theme].addChild(square4);

var square5:Sprite = new Sprite();
square5.graphics.beginFill(rgb5);
square5.graphics.drawRoundRect(300, 0, 75, 150, 10, 0);
square5.graphics.endFill();
holder[theme].addChild(square5);
nodes1 = theme;
node = theme+1;

/* var c1:TextField = new TextField();
c1.x = 0;
holder[theme].addChild(c1);
c1.text = "#"+rgb1.toString(16);
c1.autoSize = TextFieldAutoSize.LEFT;

var c2:TextField = new TextField();
c2.x = 75;
holder[theme].addChild(c2);
c2.text = "#"+rgb2.toString(16);
c2.autoSize = TextFieldAutoSize.LEFT;

var c3:TextField = new TextField();
c3.x = 150;
holder[theme].addChild(c3);
c3.text = "#"+rgb3.toString(16);
c3.autoSize = TextFieldAutoSize.LEFT;

var c4:TextField = new TextField();
c4.x = 225;
holder[theme].addChild(c4);
c4.text = "#"+rgb4.toString(16);
c4.autoSize = TextFieldAutoSize.LEFT;

var c5:TextField = new TextField();
c5.x = 300;
holder[theme].addChild(c5);
c5.text = "#"+rgb5.toString(16);
c5.autoSize = TextFieldAutoSize.LEFT;

var test:TextField = new TextField();
test.y = 55;
test.x = 30;

test.htmlText = "<font size='16' >By: "+myXML.themeList.theme.author.label[theme]+"\nTitle: <a href=\"http://kuler.adobe.com/index.cfm#themeID/"+myXML.themeList.theme.id[theme]+"\" target=\"_self\">"+myXML.themeList.theme.label[theme]+"</a>\n<a href=\"http://kuler.adobe.com/kuler/services/ase/get.cfm?themeId="+myXML.themeList.theme.id[theme]+"\">DownLoad ACE file</a></font>";
test.autoSize = TextFieldAutoSize.LEFT;
test.multiline = true;*/


}
time.start();

}
function alphaTo(event:TimerEvent) {
holder[nodes1].alpha -= .1;
/* holder[nodes1].c1.alpha -= .0;
holder[nodes1].c2.alpha -= .0;
holder[nodes1].c3.alpha -= .0;
holder[nodes1].c4.alpha -= .0;
holder[nodes1].c5.alpha -= .0;*/

if (holder[nodes1].alpha < .0) {
countDown.stop();
nodes1--;
}
}


function changeColor(event:TimerEvent) {
trace(nodes1);
trace(holder[nodes1]);
countDown.start();
if (nodes1 == 0) {
for(var i:uint = 1; i<node; i++){
holder[i].alpha = 1;
/*holder[i].c1.alpha = 1;
holder[i].c2.alpha = 1;
holder[i].c3.alpha = 1;
holder[i].c4.alpha = 1;
holder[i].c5.alpha = 1;*/
}
nodes1 = node;
}
}


function hexColor(r:uint,g:uint,b:uint):uint {
return r << 16 ^ g << 8 ^ b;
}

dthought
May 31st, 2007, 08:49 AM
Bzzt. Security Sandbox error. Flash is unhappy.

joshchernoff
May 31st, 2007, 11:36 AM
looks like they changed that API probably do to the fact that I was not supposed to know about it.

joshchernoff
May 31st, 2007, 03:09 PM
funny one moment it works then next it don't? I have no idea whats up

efnx
May 31st, 2007, 08:27 PM
It worked for me, at least I think it did. It spits out a series of colors, correct?

I did get some errors in a pop-up though.

Templarian
May 31st, 2007, 10:46 PM
works pretty good. I don't have Flash 9 so I didn't get to see the errors but nice work.

nathan99
May 31st, 2007, 10:54 PM
OMG dat iz da koolest thin dat iv eva seen. See I can talk stupid too.

ajcates
May 31st, 2007, 11:13 PM
@n99

where did that come from?