0

我想用另一个位图交换符号中的位图,我找到了函数

swapElement

这是我尝试过的

var elements = item.timeline.layers[0].frames[0].elements;//item is the symbol

for (var j = 0; j < elements.length; j++) {

    var el = elements[j];

    if (el.instanceType == "bitmap") {
        el.selected = true;//this line not work, so I want a way to make the element selected

        dom.swapElement(targetName);//targetName is another bitmap name that I wanted
    }
} 
4

2 回答 2

0

从图书馆?然后下面的代码片段可以帮助你

var libItems = fl.getDocumentDOM().library.items;

for (i = 0; i < libItems.length; i++){
if(libItems[i].itemType == “bitmap”){
//found bitmap :)
}

好的,那么:

fl.selectElement(el); //instead of el.selected = true;

dom.swapElement(targetName);//assuming you have targetName

如果选择了任何(一个项目)是位图,这将起作用,它将用名为“image4”的库项目替换它:

var dom = fl.getDocumentDOM();
var selection = dom.selection;

if(selection.length == 1 && selection[0].instanceType == "bitmap")
{
    dom.swapElement("image4");
}
于 2013-10-23T07:59:33.893 回答
0

将元素的 selected 设置为 true ,仅当元素在屏幕上时才会选择元素(并且图层已解锁且可见)。所以在 selected 设置为 true 之前 library.editItem(item.name) 应该被调用。如果元素在帧 x 中,则必须使用 document.getTimeline().setSelectedFrames(parseInt(x), parseInt(x) + 1, true) 将帧 x 设为当前帧。(由于 setSelectedFrames 中的错误,我使用 parseInt(x) 作为演员表)。为了确保该元素是唯一被选中的元素 document.selectNone() 应该在将 selected 设置为 true 之前调用。

每个实例都有一个 libraryItem,因此更换 libraryItem 可能更容易。这里的代码可以适应更具选择性的替换。

于 2013-10-24T12:16:24.953 回答