package
{
import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.ui.*;
import flash.printing.*;
import flash.xml.XMLDocument;
import flash.errors.IOError;
import flash.net.FileReference;
import flash.net.FileFilter;
import addOrbBox; // the following four lines are classes that were automatically generated by linking the appropriate movie clips in privacy.fla
import openAddOrb;
import checkBox;
import chart;
import LoadAdditionalFile;
import makeFile;
import editOrb;
import myContainer;
public class privacyOrbs10 extends MovieClip //adds to Movie Clip Class
{
private var myPrintObject:Sprite = new Sprite();
//private var options:PrintJobOptions = new PrintJobOptions();
private var addOrb_mc = new addOrbBox;
private var addFile_mc = new LoadAdditionalFile;
private var newFile_mc = new makeFile;
private var editOrb_mc = new editOrb;
private var orbs:XML = new XML;
private var ID:String = new String();
private var fr:FileReference;
private var chart_mc:chart;
private var orb_mc:MovieClip;
private var _label:TextField;
private var labelBk:Sprite;
private var entityName_txt:TextField;
private var format:TextFormat = new TextFormat();
private var boxX:Number = new Number(100);
private var boxY:Number = new Number(100);
private var zoomFactor:Number = new Number(0);
private var myMask:Sprite = new Sprite();
private var myContainer_mc:myContainer = new myContainer();
private var colors:Array = new Array("red", "orange", "brown", "pink", "lilac", "purple", "blue", "turquoise", "cyan", "green", "yellow", "gray");
private var colorCodes:Array = new Array(0xCC0033, 0xFD3200, 0xCB6633, 0xFF3199, 0xFF31FF, 0x9100F3, 0x0000FE, 0x009999, 0x00FFFF, 0x00CC00, 0xFFCC00, 0x989898);
private var numColors:int = new int(colors.length);
private var myWindows:Array = new Array(addOrb_mc, addFile_mc, newFile_mc, editOrb_mc);
private var numWindows:int = new int(myWindows.length);
public function privacyOrbs10() // sets up the paramenters and rules of the game
{
format.font = "Arial";
format.size = 14;
respond_txt.text = "Please Load XML File to begin";
respond_txt.backgroundColor = 0xCCCCCC;
respond_txt.textColor = 0x000000;
openAddOrb_btn.enabled = false;
graphicView_btn.enabled = false;
tableView_btn.enabled = false;
save_btn.enabled = false;
print_btn.enabled = false;
navigator_mc.left_btn.enabled = false;
navigator_mc.right_btn.enabled = false;
navigator_mc.up_btn.enabled = false;
navigator_mc.down_btn.enabled = false;
navigator_mc.zoomIn_btn.enabled = false;
navigator_mc.zoomOut_btn.enabled = false;
navigator_mc.center_btn.enabled = false;
loadFile_btn.enabled = true;
loadFile_btn.addEventListener(MouseEvent.CLICK, finishLoad);
newFile_btn.enabled = true;
newFile_btn.addEventListener(MouseEvent.CLICK, newFile);
fr = new FileReference();
fr.addEventListener(Event.SELECT, finishSelect);
fr.addEventListener(Event.COMPLETE, finishComplete);
fr.addEventListener(IOErrorEvent.IO_ERROR, receiveLoadError);
addChild(myContainer_mc);
makeMask();
setStuffLocation();
}
private function newFile(e:Event):void
{
newFile_mc.x = boxX;
newFile_mc.y = boxY;
//addChild(newFile_mc);
closeWindows(newFile_mc);
newFile_mc.exit_btn.addEventListener(MouseEvent.CLICK, closeNewFileWindow);
newFile_mc.quit_btn.addEventListener(MouseEvent.CLICK, closeNewFileWindow);
newFile_mc.new_btn.addEventListener(MouseEvent.CLICK, makeNewFile);
}
private function closeNewFileWindow(e:Event):void
{
removeChild(newFile_mc);
}
private function makeNewFile(e:Event):void
{
orbs = XML();
removeChild(newFile_mc);
loadFile_btn.removeEventListener(MouseEvent.CLICK, finishLoad);
openAddOrb_btn.addEventListener(MouseEvent.CLICK, addOrbs);
save_btn.addEventListener(MouseEvent.CLICK, saveMe);
graphicView_btn.addEventListener(MouseEvent.CLICK, graphicView);
tableView_btn.addEventListener(MouseEvent.CLICK, tableView);
print_btn.addEventListener(MouseEvent.CLICK, printMe);
loadFile_btn.addEventListener(MouseEvent.CLICK, loadFileAgain);
openAddOrb_btn.enabled = true;
graphicView_btn.enabled = true;
tableView_btn.enabled = true;
save_btn.enabled = true;
print_btn.enabled = true;
respond_txt.text = "A new file has been created. Please add new entities.";
viewGraphic();
}
private function finishLoad(e:Event):void
{
fr.browse();
}
private function finishSelect(e:Event):void
{
fr.load();
}
private function finishComplete(e:Event):void
{
trace("complete");
orbs = null;
orbs = XML(fr.data);
if(loadFile_btn.hasEventListener(MouseEvent.CLICK))
{
loadFile_btn.removeEventListener(MouseEvent.CLICK, finishLoad);
openAddOrb_btn.addEventListener(MouseEvent.CLICK, addOrbs);
save_btn.addEventListener(MouseEvent.CLICK, saveMe);
graphicView_btn.addEventListener(MouseEvent.CLICK, graphicView);
tableView_btn.addEventListener(MouseEvent.CLICK, tableView);
print_btn.addEventListener(MouseEvent.CLICK, printMe);
trace("setting event listeners")
}
else
{
trace("no event listeners");
}
print_btn.enabled = true;
loadFile_btn.addEventListener(MouseEvent.CLICK, loadFileAgain);
openAddOrb_btn.enabled = true;
graphicView_btn.enabled = true;
tableView_btn.enabled = true;
save_btn.enabled = true;
respond_txt.text = "Click 'add new entity' to add to your current list of entities";
viewGraphic();
}
private function tableView(event:MouseEvent):void
{
viewTable();
}
private function viewTable():void
{
if(myContainer_mc.numChildren > 0)
{
var myNum:Number = myContainer_mc.numChildren;
for (var i:Number = 0; i < myNum; i++)
{
myContainer_mc.removeChildAt(0);
}
}
else
{
}
makeMask();
setStuffLocation();
makeTable();
}
private function graphicView(event:MouseEvent):void
{
viewGraphic();
}
private function viewGraphic():void
{
if(myContainer_mc.numChildren > 0)
{
var myNum:Number = myContainer_mc.numChildren;
for (var i:Number = 0; i < myNum; i++)
{
myContainer_mc.removeChildAt(0);
}
}
else
{
}
makeMask();
setStuffLocation();
makeGraphic();
}
private function receiveLoadError(e:Event):void
{
respond_txt.text = "Error loading file : " + e;
}
private function addOrbs(event:MouseEvent):void
{
openAddOrbWindow();
}
private function loadFileAgain(event:MouseEvent):void
{
//addChildAt(addFile_mc, this.numChildren);
closeWindows(addFile_mc);
addFile_mc.x = boxX;
addFile_mc.y = boxY;
addFile_mc.save_btn.addEventListener(MouseEvent.CLICK, saveMe);
addFile_mc.noSave_btn.addEventListener(MouseEvent.CLICK, finishLoad);
addFile_mc.noSave_btn.addEventListener(MouseEvent.CLICK, closeFileWindow);
addFile_mc.exit_btn.addEventListener(MouseEvent.CLICK, closeFileWindow);
}
private function openAddOrbWindow():void
{
closeWindows(addOrb_mc);
//addChildAt(addOrb_mc, this.numChildren);
addOrb_mc.x = boxX;
addOrb_mc.y = boxY;
for (var c:Number = 0; c < numColors; c++)
{
var myBox:String = colors[c] + "_mc";
addOrb_mc.getChildByName(myBox).addEventListener(MouseEvent.CLICK, choose);
}
addOrb_mc.exit_btn.addEventListener(MouseEvent.CLICK, closeAddWindow);
/* addOrb_mc.red_mc.addEventListener(MouseEvent.CLICK, choose);
addOrb_mc.orange_mc.addEventListener(MouseEvent.CLICK, choose);
addOrb_mc.yellow_mc.addEventListener(MouseEvent.CLICK, choose);
addOrb_mc.green_mc.addEventListener(MouseEvent.CLICK, choose);*/
addOrb_mc.submit_btn.addEventListener(MouseEvent.CLICK, addNewOrb);
addEventListener(KeyboardEvent.KEY_DOWN, keySubmit);
if(addOrb_mc.yes_btn.hasEventListener)
{
addOrb_mc.yes_btn.removeEventListener(MouseEvent.CLICK, clickYes);
}
else
{
}
if(addOrb_mc.no_btn.hasEventListener)
{
addOrb_mc.no_btn.removeEventListener(MouseEvent.CLICK, clickNo);
}
else
{
}
entityName_txt = new TextField();
entityName_txt.x = 8.9;
entityName_txt.y = 196.6;
entityName_txt.width = 266;
entityName_txt.height = 23;
entityName_txt.border= entityName_txt.background = true;
entityName_txt.backgroundColor = 0xffffff;
entityName_txt.type = TextFieldType.INPUT;
entityName_txt.maxChars = 25;
entityName_txt.restrict = "a-z0-9";
entityName_txt.defaultTextFormat = format;
entityName_txt.embedFonts = true;
addOrb_mc.addChild(entityName_txt);
//stage.focus = addOrb_mc.entityName_txt;
}
private function closeAddWindow(event:MouseEvent)
{
removeChild(addOrb_mc);
respond_txt.text = "Don't forget to save your changes!";
}
private function choose(event:MouseEvent):void
{
if(event.target.currentFrame == 1)
{
event.target.gotoAndStop(2);
}
else if(event.target.currentFrame == 2)
{
event.target.gotoAndStop(1);
}
else
{
}
}
private function closeWindows(myWindow:MovieClip):void
{
for(var i = 0; i < numWindows; i++)
{
try
{
if(contains(myWindows[i]))
{
removeChild(myWindows[i]);
}
}
catch(e:ArgumentError)
{
trace(e);
}
}
addChildAt(myWindow, this.numChildren);
}
private function addNewOrb(event:MouseEvent):void
{
createOrbA();
}
private function keySubmit(evt:KeyboardEvent):void
{
switch(evt.keyCode) {
case Keyboard.ENTER:
createOrbA();
}
}
private function createOrbA():void
{
//addOrb_mc.entityName_txt.backgroundColor = 0xffffff;
trace(entityName_txt);
if(entityName_txt.text == "")
{
entityName_txt.backgroundColor = 0xffff00;
respond_txt.text = "All Entities Must have a Name";
}
else
{
var myNum = orbs.orb.ID.length();
for (var i:Number = 0; i < myNum; i++)
{
if(orbs.orb.ID[i] == entityName_txt.text)
{
entityName_txt.backgroundColor = 0xffff00;
respond_txt.text = "All Entities Must have a unique Name";
}
}
if(entityName_txt.backgroundColor == 0xffff00)
{
}
else
{
createOrb();
}
}
}
private function createOrb():void //creates orb
{
ID = entityName_txt.text;
orbs.insertChildBefore(orbs.orb[0], );
orbs.orb[0].appendChild();
orbs.orb[0].appendChild();
orbs.orb[0].appendChild();
orbs.orb[0].ID = ID;
for (var c:Number = 0; c < numColors; c++)
{
var theColor = colorCodes[c];
var myBox:String = colors[c] + "_mc";
if(addOrb_mc.getChildByName(myBox).currentFrame == 2)
{
orbs.orb[0].rings.@[colors[c]] = "true";
}
else
{
orbs.orb[0].rings.@[colors[c]] = "false";
}
}
orbs.orb[0].orbLocation.@yValue = 0;
orbs.orb[0].orbLocation.@xValue = 0;
addOrb_mc.gotoAndStop(2);
addAnotherOrb();
respond_txt.text = "Don't forget to save your changes!";
}
private function addAnotherOrb():void
{
for (var c:Number = 0; c < numColors; c++)
{
var myBox:String = colors[c] + "_mc";
addOrb_mc.getChildByName(myBox).gotoAndStop(1);
if(addOrb_mc.contains(entityName_txt))
{
trace("it exists");
addOrb_mc.removeChild(entityName_txt);
}
addOrb_mc.getChildByName(myBox).removeEventListener(MouseEvent.CLICK, choose);
}
addOrb_mc.yes_btn.addEventListener(MouseEvent.CLICK, clickYes);
addOrb_mc.no_btn.addEventListener(MouseEvent.CLICK, clickNo);
/*addOrb_mc.red_mc.removeEventListener(MouseEvent.CLICK, choose);
addOrb_mc.orange_mc.removeEventListener(MouseEvent.CLICK, choose);
addOrb_mc.yellow_mc.removeEventListener(MouseEvent.CLICK, choose);
addOrb_mc.green_mc.removeEventListener(MouseEvent.CLICK, choose);*/
addOrb_mc.submit_btn.removeEventListener(MouseEvent.CLICK, addNewOrb);
removeEventListener(KeyboardEvent.KEY_UP, keySubmit);
}
private function clickYes(event:MouseEvent):void
{
addOrb_mc.gotoAndStop(1);
this.removeChild(addOrb_mc);
openAddOrbWindow();
}
private function clickNo(event:MouseEvent):void
{
addOrb_mc.gotoAndStop(1);
this.removeChild(addOrb_mc);
viewGraphic();
}
private function saveMe(e:Event):void
{
var file:FileReference = new FileReference();
file.save(orbs, "myOrbs2.xml");
file.addEventListener(Event.COMPLETE, saveMessage);
}
private function saveMessage(e:Event):void
{
respond_txt.text = "Your file has been saved";
if(this.getChildByName(addFile_mc) == null)
{
addChildAt(addFile_mc, this.numChildren);
addFile_mc.x = boxX;
addFile_mc.y = boxY;
}
else
{
}
addFile_mc.gotoAndStop(2);
addFile_mc.continue_btn.addEventListener(MouseEvent.CLICK, closeFileWindow);
addFile_mc.loadFile_btn.addEventListener(MouseEvent.CLICK, finishLoad);
addFile_mc.loadFile_btn.addEventListener(MouseEvent.CLICK, closeFileWindow);
addFile_mc.exit_btn.addEventListener(MouseEvent.CLICK, closeFileWindow);
}
private function closeFileWindow(event:MouseEvent):void
{
addFile_mc.gotoAndStop(1);
removeChild(addFile_mc);
}
private function makeGraphic():void
{
setStuffLocation();
var orbsNum:Number = orbs.orb.length();
for (var a:Number = 0; a < orbsNum; a++)
{
orb_mc = new MovieClip();
orb_mc.x = 0;
orb_mc.y = 0;
//trace(orbs.orb[a]);
_label = new TextField();
_label.defaultTextFormat = format;
_label.text = orbs.orb[a].ID;
_label.background = true;
_label.selectable = false;
_label.autoSize = TextFieldAutoSize.LEFT;
_label.textColor = 0xffffff;
_label.backgroundColor = 0x000000;
var xLocation = orb_mc.x;
var yLocation = orb_mc.y - 8;
_label.x = xLocation;
_label.y = yLocation;
_label.embedFonts = true;
orb_mc.addChild(_label);
orb_mc.name = _label.text;
ringColors(a);
myContainer_mc.addChild(orb_mc);
if(orbs.orb[a].orbLocation.@yValue.valueOf() == 0 && orbs.orb[a].orbLocation.@xValue.valueOf() == 0)
{
var xHolder:Number = Math.round(Math.random() * 200);
var yHolder:Number = Math.round(Math.random() * 200);
orbs.orb[a].orbLocation.@yValue = yHolder;
orbs.orb[a].orbLocation.@xValue = xHolder;
}
orb_mc.x = orbs.orb[a].orbLocation.@xValue;
orb_mc.y = orbs.orb[a].orbLocation.@yValue;
myContainer_mc.getChildAt(a).addEventListener(MouseEvent.MOUSE_DOWN, dragMe);
myContainer_mc.getChildAt(a).addEventListener(MouseEvent.MOUSE_UP, stopDragMe);
MovieClip(myContainer_mc.getChildAt(a)).buttonMode = true;
}
setStuffLocation();
centerContainer();
activateGraphicNavigation();
respond_txt.text = "Your orbs were loaded successfully";
}
private function makeGraphicSort(colorName:String):void
{
var attributeNumber:Number = new Number();
for(var c:Number = 0; c < numColors; c++)
{
if(colors[c] == colorName)
{
attributeNumber = c;
}
}
if(myContainer_mc.numChildren > 0)
{
var myNum:Number = myContainer_mc.numChildren;
for (var i:Number = 0; i < myNum; i++)
{
myContainer_mc.removeChildAt(0);
}
}
else
{
}
makeMask();
setStuffLocation();
var orbsNum:Number = orbs.orb.length();
for (var a:Number = 0; a < orbsNum; a++)
{
if(orbs.orb[a].rings.attributes()[attributeNumber] == "true")
{
trace("true");
orb_mc = new MovieClip();
orb_mc.x = 0;
orb_mc.y = 0;
//trace(orbs.orb[a]);
_label = new TextField();
_label.defaultTextFormat = format;
_label.text = orbs.orb[a].ID;
_label.background = true;
_label.selectable = false;
_label.autoSize = TextFieldAutoSize.LEFT;
_label.textColor = 0xffffff;
_label.backgroundColor = 0x000000;
var xLocation = orb_mc.x;
var yLocation = orb_mc.y - 8;
_label.x = xLocation;
_label.y = yLocation;
_label.embedFonts = true;
orb_mc.addChild(_label);
orb_mc.name = _label.text;
ringColors(a);
myContainer_mc.addChild(orb_mc);
if(orbs.orb[a].orbLocation.@yValue.valueOf() == 0 && orbs.orb[a].orbLocation.@xValue.valueOf() == 0)
{
var xHolder:Number = Math.round(Math.random() * 200);
var yHolder:Number = Math.round(Math.random() * 200);
orbs.orb[a].orbLocation.@yValue = yHolder;
orbs.orb[a].orbLocation.@xValue = xHolder;
}
orb_mc.x = orbs.orb[a].orbLocation.@xValue;
orb_mc.y = orbs.orb[a].orbLocation.@yValue;
myContainer_mc.getChildAt(a).addEventListener(MouseEvent.MOUSE_DOWN, dragMe);
myContainer_mc.getChildAt(a).addEventListener(MouseEvent.MOUSE_UP, stopDragMe);
MovieClip(myContainer_mc.getChildAt(a)).buttonMode = true;
}
}
myContainer_mc.scaleX = 1;
myContainer_mc.scaleY = myContainer_mc.scaleX;
var newScaleX:Number = myMask.width/myContainer_mc.width;
var newScaleY:Number = myMask.height/myContainer_mc.height;
if(newScaleX > newScaleY)
{
newScaleX = newScaleY;
}
else
{
newScaleY = newScaleX;
}
myContainer_mc.scaleX = newScaleX;
myContainer_mc.scaleY = newScaleY;
setStuffLocation();
centerContainer();
activateGraphicNavigation();
respond_txt.text = "Your orbs were loaded successfully";
}
private function makeChartSort(colorName:String):void
{
var attributeNumber:Number = new Number();
for(var c:Number = 0; c < numColors; c++)
{
if(colors[c] == colorName)
{
attributeNumber = c;
}
}
if(myContainer_mc.numChildren > 0)
{
var myNum:Number = myContainer_mc.numChildren;
for (var i:Number = 0; i < myNum; i++)
{
myContainer_mc.removeChildAt(0);
}
}
else
{
}
makeMask();
setStuffLocation();
var orbsNum:Number = orbs.orb.length() - 1;
for (var a:Number = 0; a < orbsNum; a++)
{
if(orbs.orb[a].rings.attributes()[attributeNumber] == "true")
{
trace("true");
chart_mc = new chart();
chart_mc.x = 0;
chart_mc.y = 20 + a*25;
chart_mc.orb_txt.text = orbs.orb[a].ID;
chartColors(a);
chart_mc.addEventListener(MouseEvent.MOUSE_DOWN, chartIsClicked);
chart_mc.buttonMode = true;
chart_mc.mouseChildren = false;
myContainer_mc.addChild(chart_mc);
}
}
activateTableNavigation();
respond_txt.text = "Your orbs were loaded successfully";
myContainer_mc.scaleX = 1;
myContainer_mc.scaleY = myContainer_mc.scaleX;
setStuffLocation();
centerContainer();
}
private function makeGraphicForPrint():void
{
//setStuffLocation();
//trace("myPrintObject children is " + myPrintObject.numChildren);
if(myPrintObject.numChildren > 0)
{
var myNum:Number = myPrintObject.numChildren;
for(var i:Number = 0; i < myNum; i++)
{
//trace("numChildren > 0");
//trace(i);
myPrintObject.removeChildAt(0);
}
}
else
{
}
//myPrintObject.width = 5;
//myPrintObject.height = 5;
myPrintObject.x = 0;
myPrintObject.y = 0;
trace("myPrintObject children is " + myPrintObject.numChildren);
var orbsNum:Number = orbs.orb.length();
var format:TextFormat = new TextFormat();
format.color = 0x000000;
format.size = 12;
for (var a:Number = 0; a < orbsNum; a++)
{
orb_mc = new MovieClip();
orb_mc.x = 0;
orb_mc.y = 0;
//trace(orbs.orb[a]);
_label = new TextField();
_label.htmlText = "" + orbs.orb[a].ID + "";
_label.background = true;
_label.selectable = false;
//_label.autoSize = TextFieldAutoSize.LEFT;
_label.textColor = 0x000000;
_label.backgroundColor = 0xFFFFFF;
_label.height = _label.textHeight;
_label.width = _label.textWidth;
var xLocation = orb_mc.x;
var yLocation = orb_mc.y - 8;
_label.x = xLocation;
_label.y = yLocation;
_label.embedFonts = true;
var labelWidth:Number = _label.width + 2;
var labelHeight:Number = _label.height +2;
labelBk = new Sprite();
labelBk.graphics.beginFill(0xFFFFFF);
labelBk.graphics.drawRect(0, 0, labelWidth, labelHeight);
labelBk.x = _label.x;
labelBk.y = _label.y;
orb_mc.addChild(labelBk);
orb_mc.addChild(_label);
//orb_mc.name = _label.text;
ringColors(a);
//myContainer_mc.addChild(orb_mc);
myPrintObject.addChild(orb_mc);
/*if(orbs.orb[a].orbLocation.@yValue.valueOf() == 0 && orbs.orb[a].orbLocation.@xValue.valueOf() == 0)
{
var xHolder:Number = Math.round(Math.random() * 200);
var yHolder:Number = Math.round(Math.random() * 200);
orbs.orb[a].orbLocation.@yValue = yHolder;
orbs.orb[a].orbLocation.@xValue = xHolder;
}*/
orb_mc.x = orbs.orb[a].orbLocation.@xValue;
orb_mc.y = orbs.orb[a].orbLocation.@yValue;
//myContainer_mc.getChildAt(a).addEventListener(MouseEvent.MOUSE_DOWN, dragMe);
//myContainer_mc.getChildAt(a).addEventListener(MouseEvent.MOUSE_UP, stopDragMe);
//MovieClip(myContainer_mc.getChildAt(a)).buttonMode = true;
}
//setStuffLocation();
//centerContainer();
//activateGraphicNavigation();
//respond_txt.text = "Your orbs were loaded successfully";
}
private function ringColors(a:Number):void
{
var ringWidth = 5;
for (var c:Number = 0; c < numColors; c++)
{
var myRing = orbs.orb[a].rings.attributes()[c];
var myColor = colorCodes[c];
var myTextBox:String = colors[c] + "_txt";
var myText = orb_mc.getChildByName(myTextBox);
if (myRing == "true")
{
var _ring:Graphics = orb_mc.graphics;
ringWidth += 7;
_ring.lineStyle(1, myColor);
_ring.beginFill(0xffffff, 0);
_ring.drawCircle(orb_mc.x, orb_mc.y, ringWidth);
_ring.endFill();
}
else
{
}
}
}
private function makeTable():void
{
var orbsNum:Number = orbs.orb.length() - 1;
for (var a:Number = 0; a < orbsNum; a++)
{
chart_mc = new chart();
chart_mc.x = 0;
chart_mc.y = 20 + a*25;
chart_mc.orb_txt.text = orbs.orb[a].ID;
chartColors(a);
chart_mc.addEventListener(MouseEvent.MOUSE_DOWN, chartIsClicked);
chart_mc.buttonMode = true;
chart_mc.mouseChildren = false;
myContainer_mc.addChild(chart_mc);
}
activateTableNavigation();
respond_txt.text = "Your orbs were loaded successfully";
myContainer_mc.scaleX = 1;
myContainer_mc.scaleY = myContainer_mc.scaleX;
setStuffLocation();
centerContainer();
}
private function chartIsClicked(evt:MouseEvent):void
{
if(evt.altKey == true)
{
gotoGraphic(evt);
}
else
{
editMe(evt);
}
}
private function gotoGraphic(evt:MouseEvent):void
{
var orbName = evt.currentTarget.orb_txt.text;
var xLocation = orbs.orb.(ID == orbName).orbLocation.@xValue;
var yLocation = orbs.orb.(ID == orbName).orbLocation.@yValue;
trace(orbName);
trace(xLocation + " " + yLocation);
viewGraphic();
setStuffLocation();
myContainer_mc.x = myMask.width/2 - xLocation;
myContainer_mc.y = myMask.height/2 - yLocation;
}
private function printMe(evt:Event):void
{
var myPrintJob:PrintJob = new PrintJob();
makeGraphicForPrint();
var oldScaleX:Number = myPrintObject.scaleX;
var oldScaleY:Number = myPrintObject.scaleY;
myPrintJob.start();
trace(myPrintJob.orientation);
var newScaleX:Number = myPrintJob.pageWidth/myPrintObject.width;
var newScaleY:Number = myPrintJob.pageHeight/myPrintObject.height;
if(newScaleX > newScaleY)
{
newScaleX = newScaleY;
}
else
{
newScaleY = newScaleX;
}
myPrintObject.scaleX = newScaleX;
myPrintObject.scaleY = newScaleY;
try
{
myPrintJob.addPage(myPrintObject);
myPrintJob.send();
}
catch (error:Error)
{
respond_txt.text = "Printing was unsuccessful because of " + error;
}
myPrintObject.scaleX = oldScaleX;
myPrintObject.scaleY = oldScaleY;
}
private function resetEditWindow():void
{
closeWindows(editOrb_mc);
var numChartEntries:Number = myContainer_mc.numChildren;
for (var w:Number = 0; w < numChartEntries; w++)
{
if(myContainer_mc.contains(myContainer_mc.getChildAt(w)))
{
myContainer_mc.getChildAt(w).removeEventListener(MouseEvent.MOUSE_DOWN, chartIsClicked);
MovieClip(myContainer_mc.getChildAt(w)).buttonMode = false;
}
}
editOrb_mc.x = boxX;
editOrb_mc.y = boxY;
entityName_txt = new TextField();
entityName_txt.x = 8.9;
entityName_txt.y = 196.6;
entityName_txt.width = 266;
entityName_txt.height = 23;
entityName_txt.border= entityName_txt.background = true;
entityName_txt.backgroundColor = 0xffffff;
entityName_txt.type = TextFieldType.INPUT;
entityName_txt.maxChars = 25;
entityName_txt.restrict = "a-z0-9";
entityName_txt.defaultTextFormat = format;
entityName_txt.embedFonts = true;
editOrb_mc.addChild(entityName_txt);
entityName_txt.text = "";
for (var c:Number = 0; c < numColors; c++)
{
var myCheckBox:String = colors[c] + "_mc";
editOrb_mc.getChildByName(myCheckBox).gotoAndStop(1);
}
}
private function editMe(e:Event):void
{
resetEditWindow();
editOrb_mc.exit_btn.addEventListener(MouseEvent.CLICK, exitEditWindow);
var myTest:String = new String();
myTest = e.target.orb_txt.text;//name of the movieClip chart item
entityName_txt.text = e.target.orb_txt.text;
for (var c:Number = 0; c < numColors; c++)
{
var myCheckBox:String = colors[c] + "_mc";
var myRing = orbs.orb.(ID == myTest).rings.attributes()[c];
var myColor = colorCodes[c];
if (myRing == "true")
{
editOrb_mc.getChildByName(myCheckBox).gotoAndStop(2);
}
else
{
editOrb_mc.getChildByName(myCheckBox).gotoAndStop(1);
}
editOrb_mc.getChildByName(myCheckBox).addEventListener(MouseEvent.CLICK, choose);
}
editOrb_mc.submit_btn.addEventListener(MouseEvent.CLICK, editBySubmit);
editOrb_mc.addEventListener(KeyboardEvent.KEY_DOWN, editByEnter);
function editBySubmit(e:Event):void
{
editMyOrb();
}
function editByEnter(e:KeyboardEvent):void
{
switch (e.keyCode) {
case Keyboard.ENTER:
editMyOrb();
trace(e);
}
}
function editMyOrb():void
{
trace(orbs.orb.(ID == myTest));
for (var c:Number = 0; c < numColors; c++)
{
var theColor = colorCodes[c];
var myBox:String = new String();
myBox = colors[c] + "_mc";
if(editOrb_mc.getChildByName(myBox).currentFrame == 2)
{
orbs.orb.(ID == myTest).rings.attributes()[c] = "true";
}
else
{
orbs.orb.(ID == myTest).rings.attributes()[c] = "false";
}
}
editOrbA();
}
function editOrbA():void
{
trace(e.target.orb_txt.text);
trace(entityName_txt.text);
entityName_txt.backgroundColor = 0xffffff;
if(entityName_txt.text == "")
{
trace("name is blank");
entityName_txt.backgroundColor = 0xffff00;
respond_txt.text = "All Entities Must have a Name";
}
else if(entityName_txt.text == e.target.orb_txt.text)
{
trace("same name as before");
if(editOrb_mc.parent == null)
{
trace("parent is null");
}
else
{
trace("parent is not null");
entityName_txt.text = "";
entityName_txt.backgroundColor = 0xffffff;
editOrb_mc.submit_btn.removeEventListener(MouseEvent.CLICK, editBySubmit);
editOrb_mc.removeEventListener(KeyboardEvent.KEY_DOWN, editByEnter);
if(editOrb_mc.contains(entityName_txt))
{
editOrb_mc.removeChild(entityName_txt);
}
editOrb_mc.parent.removeChild(editOrb_mc);
}
viewTable();
}
else
{
trace("new name");
var myNum = orbs.orb.ID.length();
var numCopies = 0;
for (var i:Number = 0; i < myNum; i++)
{
if(orbs.orb.ID[i].valueOf() == entityName_txt.text)
{
numCopies += 1;
trace("numCopies is " + numCopies);
}
}
if(numCopies > 0)
{
trace("numCopies is greater than 0");
entityName_txt.backgroundColor = 0xffff00;
respond_txt.text = "All Entities Must have a unique Name";
}
else
{
orbs.orb.(ID == myTest).ID = entityName_txt.text;
if(editOrb_mc.parent == null)
{
}
else
{
editOrb_mc.submit_btn.removeEventListener(MouseEvent.CLICK, editBySubmit);
editOrb_mc.removeEventListener(KeyboardEvent.KEY_DOWN, editByEnter);
if(editOrb_mc.contains(entityName_txt))
{
editOrb_mc.removeChild(entityName_txt);
}
editOrb_mc.parent.removeChild(editOrb_mc);
}
viewTable();
}
}
}
function exitEditWindow(evt:Event):void
{
if(editOrb_mc.exit_btn.removeEventListener(MouseEvent.CLICK, exitEditWindow))
{
editOrb_mc.exit_btn.removeEventListener(MouseEvent.CLICK, exitEditWindow);
}
if(editOrb_mc.submit_btn.removeEventListener(MouseEvent.CLICK, editBySubmit))
{
editOrb_mc.submit_btn.removeEventListener(MouseEvent.CLICK, editBySubmit);
}
if(editOrb_mc.removeEventListener(KeyboardEvent.KEY_DOWN, editByEnter))
{
editOrb_mc.removeEventListener(KeyboardEvent.KEY_DOWN, editByEnter);
}
if(stage.contains(editOrb_mc))
{
removeChild(editOrb_mc);
}
viewTable();
}
}
private function activateTableNavigation():void
{
if(navigator_mc.left_btn.hasEventListener(MouseEvent.CLICK))
{
navigator_mc.left_btn.removeEventListener(MouseEvent.CLICK, goLeft);
}
else
{}
if(navigator_mc.right_btn.hasEventListener(MouseEvent.CLICK))
{
navigator_mc.right_btn.removeEventListener(MouseEvent.CLICK, goRight);
}
else
{}
if(navigator_mc.zoomIn_btn.hasEventListener(MouseEvent.CLICK))
{
navigator_mc.zoomIn_btn.removeEventListener(MouseEvent.CLICK, zoomIn);
}
else
{}
if(navigator_mc.zoomOut_btn.hasEventListener(MouseEvent.CLICK))
{
navigator_mc.zoomOut_btn.removeEventListener(MouseEvent.CLICK, zoomOut);
}
else
{}
if(navigator_mc.center_btn.hasEventListener(MouseEvent.CLICK))
{
}
else
{
navigator_mc.center_btn.addEventListener(MouseEvent.CLICK, goCenter);
}
if(navigator_mc.up_btn.hasEventListener(MouseEvent.CLICK))
{
}
else
{
navigator_mc.up_btn.addEventListener(MouseEvent.CLICK, goUp);
}
if(navigator_mc.down_btn.hasEventListener(MouseEvent.CLICK))
{
}
else
{
navigator_mc.down_btn.addEventListener(MouseEvent.CLICK, goDown);
}
if(myContainer_mc.hasEventListener(MouseEvent.MOUSE_DOWN))
{
myContainer_mc.removeEventListener(MouseEvent.MOUSE_DOWN, dragContainer);
trace("dragContainer removed");
}
else
{
trace("dragContainer not removed");
}
if(myContainer_mc.hasEventListener(MouseEvent.MOUSE_UP))
{
myContainer_mc.removeEventListener(MouseEvent.MOUSE_UP, stopDragContainer);
trace("stopdragContainer removed");
}
else
{
}
myContainer_mc.removeEventListener(MouseEvent.MOUSE_UP, stopDragContainer);
myContainer_mc.removeEventListener(MouseEvent.MOUSE_DOWN, dragContainer);
navigator_mc.center_btn.visible = true;
navigator_mc.up_btn.visible = true;
navigator_mc.down_btn.visible = true;
navigator_mc.left_btn.visible = false;
navigator_mc.right_btn.visible = false;
navigator_mc.zoomIn_btn.visible = false;
navigator_mc.zoomOut_btn.visible = false;
navigator_mc.center_btn.enabled = true;
navigator_mc.up_btn.enabled = true;
navigator_mc.down_btn.enabled = true;
navigator_mc.left_btn.enabled = false;
navigator_mc.right_btn.enabled = false;
navigator_mc.zoomIn_btn.enabled = false;
navigator_mc.zoomOut_btn.enabled = false;
if(red_mc.hasEventListener(MouseEvent.CLICK))
{
for (var c:Number = 0; c < numColors; c++)
{
var myBox:String = colors[c] + "_mc";
getChildByName(myBox).removeEventListener(MouseEvent.CLICK, graphicSort);
MovieClip(getChildByName(myBox)).buttonMode = true;
}
for (var d:Number = 0; d < numColors; d++)
{
var myBoxD:String = colors[d] + "_mc";
getChildByName(myBoxD).addEventListener(MouseEvent.CLICK, chartSort);
MovieClip(getChildByName(myBoxD)).buttonMode = true;
}
}
else
{
for (var e:Number = 0; e < numColors; e++)
{
var myBoxE:String = colors[e] + "_mc";
getChildByName(myBoxE).addEventListener(MouseEvent.CLICK, chartSort);
MovieClip(getChildByName(myBoxE)).buttonMode = true;
}
}
}
private function activateGraphicNavigation():void
{
if(navigator_mc.center_btn.hasEventListener(MouseEvent.CLICK))
{
}
else
{
navigator_mc.center_btn.addEventListener(MouseEvent.CLICK, goCenter);
}
if(navigator_mc.left_btn.hasEventListener(MouseEvent.CLICK))
{
}
else
{
navigator_mc.left_btn.addEventListener(MouseEvent.CLICK, goLeft);
}
if(navigator_mc.right_btn.hasEventListener(MouseEvent.CLICK))
{
}
else
{
navigator_mc.right_btn.addEventListener(MouseEvent.CLICK, goRight);
}
if(navigator_mc.up_btn.hasEventListener(MouseEvent.CLICK))
{
}
else
{
navigator_mc.up_btn.addEventListener(MouseEvent.CLICK, goUp);
}
if(navigator_mc.down_btn.hasEventListener(MouseEvent.CLICK))
{
}
else
{
navigator_mc.down_btn.addEventListener(MouseEvent.CLICK, goDown);
}
if(navigator_mc.zoomIn_btn.hasEventListener(MouseEvent.CLICK))
{
}
else
{
navigator_mc.zoomIn_btn.addEventListener(MouseEvent.CLICK, zoomIn);
}
if(navigator_mc.zoomOut_btn.hasEventListener(MouseEvent.CLICK))
{
}
else
{
navigator_mc.zoomOut_btn.addEventListener(MouseEvent.CLICK, zoomOut);
}
myContainer_mc.addEventListener(MouseEvent.MOUSE_DOWN, dragContainer);
myContainer_mc.addEventListener(MouseEvent.MOUSE_UP, stopDragContainer);
navigator_mc.center_btn.visible = true;
navigator_mc.up_btn.visible = true;
navigator_mc.down_btn.visible = true;
navigator_mc.left_btn.visible = true;
navigator_mc.right_btn.visible = true;
navigator_mc.zoomIn_btn.visible = true;
navigator_mc.zoomOut_btn.visible = true;
navigator_mc.center_btn.enabled = true;
navigator_mc.up_btn.enabled = true;
navigator_mc.down_btn.enabled = true;
navigator_mc.left_btn.enabled = true;
navigator_mc.right_btn.enabled = true;
navigator_mc.zoomIn_btn.enabled = true;
navigator_mc.zoomOut_btn.enabled = true;
if(red_mc.hasEventListener(MouseEvent.CLICK))
{
for (var c:Number = 0; c < numColors; c++)
{
var myBox:String = colors[c] + "_mc";
getChildByName(myBox).removeEventListener(MouseEvent.CLICK, chartSort);
MovieClip(getChildByName(myBox)).buttonMode = true;
}
for (var d:Number = 0; d < numColors; d++)
{
var myBoxD:String = colors[d] + "_mc";
getChildByName(myBoxD).addEventListener(MouseEvent.CLICK, graphicSort);
MovieClip(getChildByName(myBoxD)).buttonMode = true;
}
}
else
{
for (var e:Number = 0; e < numColors; e++)
{
var myBoxE:String = colors[e] + "_mc";
getChildByName(myBoxE).addEventListener(MouseEvent.CLICK, graphicSort);
MovieClip(getChildByName(myBoxE)).buttonMode = true;
}
}
}
private function graphicSort(e:Event):void
{
for (var c:Number = 0; c < numColors; c++)
{
var myBox:String = colors[c] + "_mc";
MovieClip(getChildByName(myBox)).gotoAndStop(1);
}
e.currentTarget.gotoAndStop(2);
var myColor:String = e.currentTarget.name;
var editedColorName:Array = myColor.split("_");
trace(editedColorName[0]);
makeGraphicSort(editedColorName[0]);
}
private function chartSort(e:Event):void
{
for (var c:Number = 0; c < numColors; c++)
{
var myBox:String = colors[c] + "_mc";
MovieClip(getChildByName(myBox)).gotoAndStop(1);
}
e.currentTarget.gotoAndStop(2);
var myColor:String = e.currentTarget.name;
var editedColorName:Array = myColor.split("_");
trace(editedColorName[0]);
makeChartSort(editedColorName[0]);
}
private function chartColors(a:Number):void
{
for (var c:Number = 0; c < numColors; c++)
{
var myRing = orbs.orb[a].rings.attributes()[c];
var myTextBox:String = colors[c] + "_txt";
var myColor = colorCodes[c];
var myText = chart_mc.getChildByName(myTextBox);
if (myRing == "true")
{
myText.backgroundColor = myColor;
myText.text = " x ";
}
else
{
myText.text = " ";
myText.backgroundColor = 0xffffff;
}
}
}
private function makeMask():void
{
myMask.graphics.beginFill(0xFF0000);
myMask.graphics.drawRect(0, 0, 600, 460);
myMask.x = 0;
myMask.y = 0;
addChild(myMask);
myContainer_mc.mask = myMask;
}
private function setStuffLocation():void
{
myContainer_mc.x = 0;
myContainer_mc.y = 0;
/*
trace("myContainer X is " +myContainer_mc.x);
trace("myContainer Y is " + myContainer_mc.y);
trace("myContainer width is " + myContainer_mc.width);
trace("myContainer height is " + myContainer_mc.height);*/
}
private function centerContainer():void
{
var differenceY = 0;
var differenceX = 0;
var holdX = 0;
var holdY = 0;
var moveMeX = 0;
var moveMeY = 0;
differenceY= (myContainer_mc.height - myMask.height)/2 * -1;
differenceX = (myContainer_mc.width - myMask.width)/2 * -1;
/*
trace("x diff is " + differenceX);
trace("y diff is " + differenceY);*/
myContainer_mc.x = differenceX ;
myContainer_mc.y = differenceY;
}
private function goCenter(event:MouseEvent):void
{
setStuffLocation();
centerContainer();
}
private function goLeft(event:MouseEvent):void
{
myContainer_mc.x += 50;
}
private function goRight(event:MouseEvent):void
{
myContainer_mc.x -= 50;
}
private function goUp(event:MouseEvent):void
{
if( 460 > (myContainer_mc.y + 100))
{
myContainer_mc.y += 50;
}
else
{
}
}
private function goDown(event:MouseEvent):void
{
if((myContainer_mc.y - 50) < (0 - myContainer_mc.height))
{
}
else
{
myContainer_mc.y -= 50;
}
}
private function zoomIn(event:MouseEvent):void
{
/*zoomFactor += 1;
trace(zoomFactor);
myContainer_mc.scaleX *= 1.2;
myContainer_mc.scaleY *= 1.2;*/
myContainer_mc.scaleX += .15;
myContainer_mc.scaleY = myContainer_mc.scaleX;
}
private function zoomOut(event:MouseEvent):void
{
/*zoomFactor -= 1;
trace(zoomFactor);
myContainer_mc.scaleX /= 1.2;
myContainer_mc.scaleY /= 1.2;*/
myContainer_mc.scaleX -= .15;
myContainer_mc.scaleY = myContainer_mc.scaleX;
}
private function dragContainer(evt:MouseEvent):void
{
if(evt.shiftKey == true)
{
trace("shift is true");
evt.currentTarget.startDrag();
}
else
{
trace("shift is not true");
}
}
private function stopDragContainer(Event:MouseEvent):void
{
Event.currentTarget.stopDrag();
}
private function dragMe(Event:MouseEvent):void
{
Event.currentTarget.startDrag();
}
private function stopDragMe(Event:MouseEvent):void
{
Event.currentTarget.stopDrag();
var moveX:Number = new Number(Event.currentTarget.x);
var moveY:Number = new Number(Event.currentTarget.y);
var myX:Number = new Number( orbs.orb.(ID == Event.currentTarget.name).orbLocation.@xValue.valueOf());
var myY:Number = new Number( orbs.orb.(ID == Event.currentTarget.name).orbLocation.@yValue.valueOf());
/*trace("currentX " + myX);
trace("currentY " + myY);
trace("moveX " + moveX);
trace("moveY " + moveY);*/
orbs.orb.(ID == Event.currentTarget.name).orbLocation.@xValue = moveX;
orbs.orb.(ID == Event.currentTarget.name).orbLocation.@yValue = moveY;
}
}
}