Frage

Ich suche nach einer JSFL-Funktion, die alle Elemente auf einem Rahmen auswählen und löschen Sie alle Striche, die eine bestimmte Farbe wie # 0000ff übereinstimmen

Im Grunde mache ich eine Menge von Notizen mit dem Stift-Werkzeug rote Bleistiftstriche verwenden. Aber wenn Im ich will geschehen nur Flash sagen alle meine roten schürt vom Bildschirm und lassen alles andere intakt zu löschen. Jede Lösung für dieses?

War es hilfreich?

Lösung

Gute Frage!

Mit Blick auf das Document-Objekt in den JSFL Dokumente, die ich der einzige Weg, sehen einen Anschlag abzurufen ist durch document.getCustomStroke (), die lästig ist. Im Idealfall würde das Shape-Objekt speichert Stroke und Fill Informationen, aber es funktioniert nicht: (

Ich habe versucht, die Auswahl mit Arrays zu steuern:

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

Das hat nicht funktioniert.

Dann habe ich versucht, jedes Objekt wählen mit

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

Aber das ist nicht sehr hilfreich, da die Hinweise jede Form annehmen kann, so ein Klick auf die oben Anmerkung der linken Ecke könnte ein übersehen Auswahl. durch jedes Pixel Looping nur eine Auswahl bekommen würde nicht funktionieren.

Kurze Antwort ist nicht, weil der einzige Weg, um die Strichfarbe abrufen die Dokumentenauswahl ist durch.

Es gibt einige Abhilfen aber:

  1. In den IDE verwenden Suchen und Ersetzen, wählt Farbe statt Text und ersetzen Sie die Banknotenfarbe mit etwas transparent. Unglücklicherweise Das ist nicht viel von einer Lösung. Es wird verbergen nur die Noten, so dass sie nicht gelöscht werden. Flash-Suchen und ersetzen
    (Quelle: sonic.net )

  2. Machen Sie es einfach die Noten von JSFL zu erhalten: Legen Sie alle Noten in der aktuellen Timeline in einer Schicht und gibt ihm einen suggestiven Namen, sagt ‚_notes‘, dann nur löschen Sie diese Schicht.

z.

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

kann Hoffentlich jemand einen schönen Hack sorgt für Objekte, die von Farbe in JSFL auswählen. Es gibt durchaus ein paar Dinge, die Sie in der IDE tun, aber können sie von JSFL nicht tun: (

HTH

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top