/**
* example application of Coxcomb charting classes
*
* interactive example
* shows off tweening and interactivity
*
* by Zachary Forest Johnson
* indiemaps.com/blog
*
*/
package {
import com.indiemaps.charting.coxcomb.CoxcombChart;
import flash.display.Shape;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFormat;
[SWF(backgroundColor='#ffffff', width='550', height='550')]
public class CoxcombTest extends Sprite
{
[Embed(systemFont="Helvetica", fontName="Helvetica", mimeType='application/x-font')]
private static var _ignoreMe:String;
[Embed(systemFont="Helvetica", fontName="Helvetica", fontWeight="bold", mimeType='application/x-font')]
private static var _ignoreMe2:String;
private var fakeData:Array = new Array();
private var coxcombChart:CoxcombChart;
public function CoxcombTest()
{
init();
}
private function init():void {
createData();
var colorArray:Array = [0x0099cc, 0xff0000, 0xcc0000, 0xffff00, 0x00ffff, 0x333333, 0x0099cc, 0xff0000, 0xcc0000, 0xffff00, 0x00ffff, 0x333333];
coxcombChart = new CoxcombChart(fakeData, 500, 0x000000, 0x0099cc, 3, -999, true, "label", "value", true, 15);
coxcombChart.showLabels("horizontal", { font : "Helvetica" }, 999, 15);
var mug:Sprite = new Sprite();
addChild(mug);
mug.graphics.beginFill(0x000000, .5);
mug.graphics.endFill();
mug.y = 275; mug.x = 275;
mug.addChild(coxcombChart);
makeButton();
}
private function makeButton():void {
var button:Sprite = new Sprite();
button.buttonMode = true;
var buttonText:TextField = new TextField();
buttonText.defaultTextFormat = new TextFormat("Helvetica", 15, 0xeeeeee, true);
buttonText.autoSize = 'left';
buttonText.text = 'clicky';
buttonText.mouseEnabled = false;
var bg:Shape = new Shape();
bg.graphics.beginFill(0x000000);
bg.graphics.drawRect(0,0,buttonText.textWidth+5, buttonText.textHeight+5);
button.addChild(bg); button.addChild(buttonText);
button.addEventListener(MouseEvent.CLICK, buttonClicky);
button.addEventListener(MouseEvent.MOUSE_OVER, buttonOver);
button.addEventListener(MouseEvent.MOUSE_OUT, buttonOut);
function buttonOver(e:MouseEvent):void {
buttonText.textColor = 0xEC087D;
}
function buttonOut(e:MouseEvent):void {
buttonText.textColor = 0xeeeeee;
}
button.x = button.y = 5;
addChild(button);
}
private function buttonClicky(e:MouseEvent):void {
newDataset();
}
private function newDataset():void {
for each (var month:Object in fakeData) {
month.value = Math.random() * 50;
}
coxcombChart.update();
}
private function createData():void {
var months:Array = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
for each (var month:String in months) {
fakeData.push(
{
label : month,
value : Math.random() * 50
}
);
}
}
}
}