Skip to content

Instantly share code, notes, and snippets.

@lynxerzhang
Created May 25, 2014 08:36
Show Gist options
  • Save lynxerzhang/116ae5183133da27e4e6 to your computer and use it in GitHub Desktop.
Save lynxerzhang/116ae5183133da27e4e6 to your computer and use it in GitHub Desktop.
将库中所有元件设置成导出状态(Export For ActionScript)
var doc = fl.getDocumentDOM();
//symbol type constant
var movieclipType = "movie clip";
var folderType = "folder";
var bitmapType = "bitmap";
var soundType = "sound";
//prefix
var mcPrefix = "ui";
var bitmapPrefix = "bitmap";
var soundPrefix = "sound";
var library = null;
var items = null;
run();
function run()
{
if(!checkDocument()){
return;
}
//get the library
library = doc.library;
items = library.items;
generateEmbedClassByName(items);
}
function checkDocument()
{
var isLegal = true;
if(!doc){
alert("must open a .fla file.");
isLegal = false;
}
return isLegal;
}
function generateEmbedClassByName(itemAry)
{
if(!itemAry){
return;
}
var len = itemAry.length;
var subItem = null;
if(len > 0){
for(var i = 0; i < len; i ++){
subItem = itemAry[i];
if(subItem.itemType == movieclipType){
generateEmbedClassWithMovieClip(subItem, mcPrefix);
}
else if(subItem.itemType == soundType){
generateEmbedClassWithSound(subItem, soundPrefix);
}
else if(subItem.itemType == bitmapType){
//TODO
generateEmbedClassWithBitmap(subItem, mcPrefix);
}
//else if(subItem.itemType == folderType){
//}
}
doc.save();
}
}
//sprite will be same as movieclip
function generateEmbedClassWithMovieClip(item, prefix)
{
var name = getLibraryItemRawName(item);
if(!item.linkageExportForAS){
item.linkageExportForAS = true;
item.linkageExportInFirstFrame = true;
item.linkageClassName = prefix + "_" + name;
}
}
//raw bitmap
function generateEmbedClassWithBitmap(item, prefix)
{
if(item.linkageExportForAS){
item.linkageExportForAS = false;
item.linkageExportInFirstFrame = false;
}
var name = getLibraryItemRawName(item);
library.selectNone();
//*
if(library.itemExists(name)){
//alert("already in the library");
return;
}
//*/
library.selectItem(item.name, false, true);
//fl.trace([name, item.name]);
library.addItemToDocument({"x":10, "y":10}, item.name);
var bItem = doc.convertToSymbol(movieclipType, name, "top left");
//fl.trace(bItem);//[object SymbolItem]
if(bItem && !bItem.linkageExportForAS){
bItem.linkageExportForAS = true;
bItem.linkageExportInFirstFrame = true;
bItem.linkageClassName = prefix + "_" + name;
}
doc.deleteSelection();
}
//sound
function generateEmbedClassWithSound(item, prefix)
{
var name = getLibraryItemRawName(item);
if(!item.linkageExportForAS){
item.linkageExportForAS = true;
item.linkageExportInFirstFrame = true;
item.linkageClassName = prefix + "_" + name;
}
}
function getLibraryItemRawName(item)
{
var s = item.name;
if(s.lastIndexOf("/") > -1){
s = s.slice(s.lastIndexOf("/") + 1, s.length);
}
if(s.lastIndexOf(".") > -1){
s = s.slice(0, s.lastIndexOf("."));
}
return s;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment