JSFL: Eliminar todos los accidentes cerebrovasculares, que coinciden con un color específico?

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

  •  02-10-2019
  •  | 
  •  

Pregunta

Busco una función JSFL que puede seleccionar todos los elementos en un marco y eliminar todos los trazos que coinciden con un color específico, tales como # 0000ff

Básicamente hago un montón de notas con la herramienta de lápiz usando trazos de lápiz rojo. Pero cuando Im hecho sólo quiero decir flash para eliminar todos mis Stokes rojas de la pantalla y todo lo demás intacto licencia. Cualquier solución a esto?

¿Fue útil?

Solución

Buena pregunta!

Mirando el objeto de documento en los documentos JSFL que veo la única manera de recuperar un accidente cerebrovascular es a través document.getCustomStroke () que es molesto. Lo ideal sería que el objeto de forma almacenaría la información de trazo y de relleno, pero no es así: (

He intentado controlar la selección utilizando matrices:

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)
}

Eso no funcionó.

Entonces traté de seleccionar cada objeto utilizando

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

Pero eso no es muy útil ya las notas pueden tomar cualquier forma, por lo que un clic en la parte superior de la nota dejada esquina podría ser una llamada perdida selección. Bucle a través de cada píxel sólo para obtener una selección no funcionaría.

Breve respuesta es no, porque la única manera de recuperar el color del trazo es a través de la selección de documentos.

Existen algunas soluciones sin embargo:

  1. En el IDE, el uso de buscar y reemplazar, seleccione color en lugar de texto y reemplazar el color de la nota con algo transparente. Desafortunadamente esto no es mucho de una solución. Se acaba de ocultar las notas, no los elimine. hallazgo flash y reemplazar
    (fuente: sonic.net )

  2. es más fácil obtener las notas de JSFL: Colocar todas las notas de la corriente línea de tiempo en una capa y darle un nombre sugerente, decir '_notes', a continuación, sólo eliminar esa capa.

por ejemplo.

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;
}

Esperemos que alguien puede proporcionar un buen truco para seleccionar objetos por el color en JSFL. Hay bastantes cosas que puede hacer en el IDE, pero no puede hacerlas de JSFL : (

HTH

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top