删除不用元件要注意

3 篇文章 0 订阅
压缩源文件的最好办法就是把不用的元件全部删除.这时候在library面板上选择"选择删除未使用元件",然后删除即可
但是这个方法在MX的时候,会把"在第一帧导出"但并未在场景上使用的元件也认为是未使用的.但在2004以后就有所改进.

不过还要注意几点

元件不在场景,且linkage没有选中"在第一帧导出",就认为这个元件 没被使用
任何位图元件,在场景中,只存在打散形态的(就是位图填充),这个位图元件就认为 没被使用

任何字体元件,不管有没有用,都认为 使用了
任何引导层内的元件,虽然不会被发布,但都算 使用了

顺便送一个jsfl,可以把整个文档,包括所有元件中的无用引导层全部删除,然后再选择删除未使用元件...嘿嘿

/*
    Guide Layers Remover
*/

doit();
function doit()
{
    var doc = fl.getDocumentDOM();
    // clean library item
    var lib = doc.library;
    for(var i=0,is=lib.items; i<is.length; ++i)
    {
        switch (is[i].itemType)
        {
        case "movie clip":
        case "graphic":
        case "button":
            lib.editItem(is[i].name);
            removeGuideLayers();
        break;
        default: break;
        }
    }
    // clean scene timeline
    var ct = doc.currentTimeline;
    for(var i=0; i<doc.timelines.length; ++i)
    {
        doc.currentTimeline = i;
        removeGuideLayers();
    }
    doc.currentTimeline = ct;
}

function removeGuideLayers()
{
    var t = fl.getDocumentDOM().getTimeline();
    var i = t.layerCount;
    while (--i>=0)
    {
        var ly = t.layers[i];
        if (ly.parentLayer)
        {
            var ply = ly.parentLayer;
            if ("guide" == ply.layerType || "mask" == ply.layerType)
            {
                i = getLayerIndex(ply);
                continue;
            }
        }

        if ("guide" == ly.layerType)
        {
            t.deleteLayer(i);
        }
    }
}

function getLayerIndex(ly)
{
    var t = fl.getDocumentDOM().getTimeline();
    for(var i=0; i<t.layerCount; ++i)
        if(t.layers[i] == ly ) return i;
    return -1;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值