package { import flash.display.MovieClip; import flash.events.MouseEvent; import flash.events.*; import flash.filesystem.File; import flash.net.FileFilter; import Defs.GraphicDef; import flash.text.engine.GraphicElement; public class NewGraphicDialog extends MovieClip { public function NewGraphicDialog() { // constructor code Init(); } var typeButtons:Array = new Array(); public function Init() { graphicPath.text = "Path to Graphic Here"; this.removeChild(browseButton); var newBrowseButton = new UI_GenericBlueButton(); newBrowseButton.Text = "Browse"; newBrowseButton.OnClick = BrowseForFile; newBrowseButton.x = browseButton.x + (newBrowseButton.width / 2); newBrowseButton.y = browseButton.y + (newBrowseButton.height / 2); addChild(newBrowseButton); var newTestButton = new UI_GenericBlueButton(); newTestButton.Text = "Export"; newTestButton.OnClick = TestFile; newTestButton.x = testButton.x + (newTestButton.width / 2); newTestButton.y = testButton.y + (newTestButton.height / 2); addChild(newTestButton); this.removeChild(typePlaceholderButton); var typeX = typePlaceholderButton.x; var typeY = typePlaceholderButton.y + (typePlaceholderButton.height / 2); var typeButton = new UI_GenericBlueButton(); typeButton.Text = "Graphic (1)"; typeButton.OnClick = function(){ SetType(1); } typeButton.x = typeX + (typeButton.width / 2); typeButton.y = typeY; typeButtons.push(typeButton); addChild(typeButton); typeX += typeButton.width + 5; typeButton = new UI_GenericBlueButton(); typeButton.Text = "Skeletal (3)"; typeButton.OnClick = function(){ SetType(3); } typeButton.x = typeX + (typeButton.width / 2); typeButton.y = typeY; typeButtons.push(typeButton); addChild(typeButton); typeX += typeButton.width + 5; typeButton = new UI_GenericBlueButton(); typeButton.Text = "Scene (6)"; typeButton.OnClick = function(){ SetType(6); } typeButton.x = typeX + (typeButton.width / 2); typeButton.y = typeY; typeButtons.push(typeButton); addChild(typeButton); animationCheckbox.Checked = true; //browseButton //typePlaceholderButton //usesInput //usesText.text = "" } var usesInputDefaultText = "Comma Seperated List of Uses Here"; public static var fakeID = 9999999; public function TestFile() { fakeID++; var graphicName = graphicPath.text; var graphicData = {id:fakeID,graphic:graphicPath.text,v:1,fs:0,p:0,type:selectedType}; //"export_params":{"uses":["background"],"available_sizes":["default"],"compress":false}} var graphicDef = new GraphicDef(graphicData); this.Hide(); graphicExport.ExportItem(graphicDef); } var selectedType = 1; public function SetType(type:Number) { selectedType = type; for(var i = 0; i < typeButtons.length; i++) { typeButtons[i].Enabled = true; } animationCheckbox.visible = false; switch(type) { case 1: { typeButtons[0].Enabled = false; animationCheckbox.visible = true; break; } case 3: typeButtons[1].Enabled = false; break; case 6: typeButtons[2].Enabled = false; break; } } var graphicExport:GraphicExport; public function Show(parentClip) { this.graphicExport = parentClip; parentClip.addChild(this); SetType(selectedType); var graphicList = GameData.Instance().GraphicDefines; var usesString:String = ""; var uniqueUseTypes:Array = new Array(); for (var i = 0; i < graphicList.length; i++) { var graphicDef:GraphicDef = graphicList[i]; var uses = graphicDef.ExportParams['uses']; for (var usage in uses) { if (uniqueUseTypes[uses[usage]] == null) { uniqueUseTypes[uses[usage]] = uses[usage]; usesString += uses[usage] + ", "; } } } graphicPath.text = ""; } public function CloseClicked(event) { Hide(); } public function Hide() { if (this.parent != null) this.parent.removeChild(this); } public function BrowseForFile() { var file:File = new File(); var swfTypeFilter:FileFilter = new FileFilter("SWF Files","*.swf"); file.addEventListener(Event.SELECT, openFile); file.browse([swfTypeFilter]); } private function openFile(event:Event):void { _strace(event.target.nativePath); var path:String = event.target.nativePath; var pathParts:Array = path.split("Graphics\\"); if (pathParts.length == 2) { var fileRemainder:String = pathParts[1]; var withoutExtension:String = fileRemainder.split(".")[0]; var pattern:RegExp = /\\/g; withoutExtension = withoutExtension.replace(pattern, "/"); _strace(withoutExtension); graphicPath.text = withoutExtension; if (withoutExtension.indexOf("Backgrounds") > -1) { SetType(6); } if (withoutExtension.indexOf("Monsters") > -1) { SetType(3); } if (withoutExtension.indexOf("Characters") > -1) { SetType(3); } if (withoutExtension.indexOf("Portraits") > -1) { SetType(1); } if (withoutExtension.indexOf("Quest") > -1) { SetType(1); } if (withoutExtension.indexOf("Equipment") > -1) { SetType(1); } } } } }