/***** * Tommy Kjær Andersen * Destino - www.desti.no ******/ var dom = fl.getDocumentDOM(); //var selectedLibItems = dom.library.getSelectedItems(); //var exportObject = selectedLibItems[0]; //Get a referance to the library item currently opend var exportObject = dom.library.items[dom.library.findItemIndex(dom.getTimeline().name)]; dom.library.editItem(exportObject.name) var importList = []; var varList = []; var dataTypeList = []; var initList = []; findObjects(); function findObjects() { dom.selectAll() var objList = dom.selection; for(var i = 0; i < objList.length; i++) { var elem = objList[i]; if(elem.name != "") { var nName = elem.name; if(nName.substr(0, 3) == "ide") { nName = nName.substr(3); } varList.push(nName); elem.name = "ide"+nName; initList.push(elem.name); if(elem.elementType == "text") { addClassImport("flash.text.TextField"); } if(elem.elementType == "instance") { if(elem.libraryItem.linkageExportForAS) { if(elem.libraryItem.linkageClassName.indexOf(".") != -1) { addClassImport(elem.libraryItem.linkageClassName); } else { addClassImport(elem.libraryItem.linkageBaseClass || "flash.display.MovieClip"); } } else { addClassImport(elem.libraryItem.linkageBaseClass || "flash.display.MovieClip"); } } } } renderResult(); } function addClassImport(imp) { var className = imp.split("."); dataTypeList.push(className[className.length-1]); for(var i = 0; i < importList.length; i++) { if(importList[i] == imp) { return; } } importList.push(imp); } function renderResult() { importList.sort(); var impText = "\timport " + importList.join("\n\timport "); var varText = ""; var initText = ""; for(var i = 0; i < varList.length; i++) { varText += "\t\tprivate var " + varList[i]+":"+dataTypeList[i]+";\n"; initText += "\t\t\t"+varList[i]+" = "+initList[i]+" as "+dataTypeList[i]+";\n"; } //open file dialog var file = fl.browseForFileURL("save", "Save Class, dont use as extention, just name"); //split path int array var fileURISplit = file.split("/"); //extract filen name frome array var fileName = fileURISplit.pop(); //copy array cerated with out reson! var packagePath = fileURISplit.concat(); var documentPath = fl.getDocumentDOM().pathURI; var docURISplit = documentPath.split("/"); docURISplit.pop(); for(var i = 0; i < docURISplit.length; i++) { if(docURISplit[i] == packagePath[i]) { } else { throw new Error("Save Path do not match document path"); break; } } packagePath.splice(0, i); var packageName = packagePath.join("."); var output = "package " + packageName + "\n{\n\timport flash.display.Sprite\n"+impText+"\n\tpublic class " + fileName + " extends Sprite\n\t{\n\n"+varText+"\n\t\tpublic function " + fileName + "()\n\t\t{\n"+initText+"\t\t\t\n\t\t}\n\t}\n}"; FLfile.write(file+".as", output); //fl.trace("output:\n" + output); exportObject.linkageExportForAS = true; exportObject.linkageClassName = packageName+"."+fileName; }