我想将符号中的位图与另一个位图交换,我找到了函数
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
}
}
答案 0 :(得分: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");
}
答案 1 :(得分:0)
将selected设置为true将仅在元素在屏幕上时选择元素(并且图层已解锁且可见)。因此,在将selected设置为true之前,应调用library.editItem(item.name)。如果元素在帧x中,则必须使用document.getTimeline()。setSelectedFrames(parseInt(x),parseInt(x)+ 1,true)使帧x成为当前帧。 (因为setSelectedFrames中的错误,我使用parseInt(x)作为强制转换)。为了确保元素是唯一被选中的元素,应该在将selected设置为true之前调用document.selectNone()。
每个实例都有一个libraryItem,因此可能更容易替换libraryItem。 代码here可以用于更具选择性的替换。