JSFL: Удалить все удары, которые соответствуют определенному цвету?

StackOverflow https://stackoverflow.com/questions/3169305

  •  02-10-2019
  •  | 
  •  

Вопрос

Я ищу функцию JSFL, которая может выбрать все элементы на раме и удалять все удары, которые соответствуют определенному цвету, такими как # 0000FF

По сути, я делаю много заметок с карандашом, используя красные удары карандашом. Но когда я сделал, я просто хочу сказать Flash, чтобы удалить все мои красные стопки с экрана и оставь все остальное. Любые решения для этого?

Это было полезно?

Решение

Хороший вопрос !

Глядя на объект документа в документах JSFL, я вижу, единственный способ получить инсульт - через Document.getCustomStroke (), который раздражает. В идеале объект формы будет хранить инсульт и заполнить информацию, но это не :(

Я пытался контролировать выбор, используя массивы:

var doc = fl.getDocumentDOM();
doc.selectAll();
var s = new Array().concat(doc.selection);
var sl = s.length;
doc.selectNone();

for(var i = 0; i < sl ; i++){
   doc.selection = s[i];
   stroke = doc.getCustomStroke('selection')
   fl.trace(stroke.color)
}

Это не сработало.

Затем я пытался выбрать каждый объект, используя

doc.mouseClick({x:s[i].x, y:s[i].y}, false, false);

Но это не очень полезно, поскольку заметки могут принимать любую форму, поэтому щелчок в верхнем левом углу примечания может быть пропущенным выбором. Зацикливаться через каждый пиксель, чтобы получить выбор, не будет работать.

Краткий ответ - это не потому, что единственный способ получить цвет инсульта проникает через выбор документа.

Есть некоторые обходные пути, хотя:

  1. В IDE используйте найдите и замените, выберите цвет вместо текста и замените цвет ноты с чем-то прозрачным. К сожалению, это не так много решения. Это просто будет скрыть заметки, а не удалять их.flash find and replace
    (источник: Sonic.net.net.)

  2. Чтобы легко получить заметки от JSFL: поместите все заметки в текущей временной шкале в одном слое и дайте ему наводящее имя, скажем «_ноты», то просто удалите этот слой.

например

var doc = fl.getDocumentDOM();
if(!doc) alert('Pardon me! There is no document open to work with.');

fl.trace(deleteLayerByName('_notes'))

/*Returns true if the layer was found and deleted, otherwise returns false*/
function deleteLayerByName(name){
    var timeline  = doc.getTimeline();
    var frame     = timeline.currentFrame;
    var layers    = timeline.layers;
    var layersNum = layers.length;
    for(var i = 0 ; i < layersNum; i++){
        if(layers[i].name == name){
            timeline.deleteLayer(i)
            return true;
        }
    }
    return false;
}

Надеюсь, кто-то может обеспечить хороший взлом для выбора объектов по цвету в JSFL. Есть довольно много вещей, которые вы можете сделать в IDE, но не могу сделать их от jsfl :(

Емкость

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top