|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Banned
[+4 01.02.09]
[+1 01.02.09] |
JSFL войти в сгруппированный шейп (shape)
Дошел до уровня элемент_шейп.isGroup
Далее надо войти в группу (или подгруппы) до конечного шейпа и выделить его (применить в итоге optimizeCurves). Не могу найти, как получить массив группы (или как войти в группу)??? |
|
|||||
ветеран форума
|
а если сделать beginEdit, а затем unGroup? потом отредактировать и сгруппировать обратно
__________________
4am is time to rock |
|
|||||
Banned
[+4 01.02.09]
[+1 01.02.09] |
Разгруппированные шейпы ведут себя непредсказуемо, особенно когда их много - обратно может сгруппироваться совсем не то.
В общем нашел, что в группу можно войти enterEditMode(). Но при выделении selectAll() в массиве selection всего один объект (хотя там могут быть несколько шейпов, в т.ч. тоже сгруппированные). Плюс начинаются глюки со встроенными методами JSFL-разработчиков: то enterEditMode(), то optimizeCurves(), начинают непредсказуемо писать ошибки - якобы нет выделения! (и это после selectAll()!) Непредсказуемость в том, что они при одном запуске возникают, при другом - нет. add: В общем основная ошибка из-за которой скрипт не работает - нестабильность метода Цитата:
А выделение нужного элемента (мой_элемент) - необходимое условие методов enterEditMode и optimizeCurves. Может быть еще как-то можно выделить элемент для этих методов? Не понимаю... Array.prototype.clone=function(){ var arr=[] for (var i in this){ arr[i]=this[i] } return arr } fl.outputPanel.clear (); myFile=fl.getDocumentDOM() myTimeline=myFile.getTimeline() for (var i=0; i<myTimeline.layers.length; i++){ // перебираем слои var curLayer=myTimeline.layers[i] // текущий слой for (var j=0; j<curLayer.frames.length; j++){ // перебираем кадры curFrame=curLayer.frames[j] // текущий кадр var arrElements = curFrame.elements.clone(); // массив с элементами на текущем кадре for (var c = 0; c < arrElements.length; c++) { var curElement=arrElements[c] chekElements(curElement) } } } function chekElements(curElement){ myFile.selectNone() fl.trace("проверка элемента "+curElement) if (curElement.elementType == "shape"){ if (curElement.isGroup){ inGroup(curElement) return } //myFile.selection=[curElement] myFile.selectAll() fl.trace("Оптимизация простого элемента "+myFile.selection) if (!myFile.selection.length){ fl.trace("произошел сбой выделения элемента") return } myFile.optimizeCurves(100, true); } } function inGroup(curElement){ fl.trace("выделена группа") myFile.selection=[curElement] if (!myFile.selection.length){ fl.trace("произошел сбой выделения группы") return } myFile.enterEditMode(); // входим в группу myFile.selectAll() // выделяем все элементы var arrSelection=myFile.selection.clone() fl.trace("В группе выделенных элементов: "+arrSelection.length) for (var i=0; i<arrSelection.length; i++){ chekElements(arrSelection[i]) } myFile.exitEditMode() // выходим из группы } Последний раз редактировалось chingachgoog; 13.02.2009 в 14:35. |
Часовой пояс GMT +4, время: 01:48. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|