Domanda

Sto cercando una funzione JSFL che può selezionare tutti gli elementi su un telaio ed eliminare tutti i tratti che corrispondono a un colore specifico come ad esempio # 0000FF

In pratica faccio un sacco di note con lo strumento matita con tratti di matita rossa. Ma quando Im fatto voglio solo dire a flash per eliminare tutti i miei Stokes rosse dallo schermo e lasciare tutto il resto intatto. Eventuali soluzioni a questo?

È stato utile?

Soluzione

Buona domanda!

Guardando l'oggetto Document nei documenti JSFL vedo l'unico modo per recuperare un ictus è attraverso document.getCustomStroke () che è fastidioso. Idealmente all'oggetto forma sarebbe memorizzare Stroke e Fill informazioni, ma non è così: (

Ho provato a controllare la selezione usando array:

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

che non ha funzionato.

Poi ho cercato di selezionare ciascun oggetto utilizzando

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

Ma non è molto utile, come le note possono assumere qualsiasi forma, quindi un click in alto della nota d'angolo da sinistra potrebbe essere un mancato selezione. Scorrendo ogni pixel solo per ottenere una selezione non funzionerebbe.

Breve risposta non è perché l'unico modo per recuperare il colore del tratto è attraverso la selezione del documento.

Ci sono alcune soluzioni però:

  1. Nel IDE, utilizzare Trova e sostituisci, scegli il colore al posto del testo e sostituire la nota di colore con qualcosa di trasparente. Sfortunatamente questo non è molto più di una soluzione. E 'solo nascondere le note, non li elimina. find flash e sostituire
    (fonte: sonic.net )

  2. rendere più facile ottenere le note da JSFL: Mettere tutte le note nella corrente timeline in uno strato e dargli un nome suggestivo, dire '_notes', poi basta eliminare quello strato.

per es.

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

Speriamo che qualcuno in grado di fornire un bel hack per la selezione di oggetti in base al colore in JSFL. Ci sono alcune cose che puoi fare nell'IDE, ma non può fare loro da JSFL : (

HTH

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top