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; } } }