JSFL: Supprimer tous les coups qui correspondent à une couleur spécifique?

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

  •  02-10-2019
  •  | 
  •  

Question

Je suis à la recherche d'une fonction JSFL qui peut sélectionner tous les éléments sur un cadre et supprimer tous les traits qui correspondent à une couleur spécifique tel que # 0000ff

En gros je fais beaucoup de notes avec l'outil crayon à l'aide des coups de crayon rouge. Mais quand je suis fait, je veux juste dire flash pour supprimer tous mes stokes rouges de l'écran et tout autre congé intact. Toute solution à cela?

Était-ce utile?

La solution

Bonne question!

Regarder l'objet de document dans les documents que je vois JSFL le seul moyen de récupérer un accident vasculaire cérébral est par document.getCustomStroke () qui est gênant. Idéalement, l'objet de forme stockerait des maladies et des informations de remplissage, mais il ne fonctionne pas: (

J'ai essayé de contrôler la sélection à l'aide des tableaux:

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

Cela ne fonctionne pas.

Alors j'ai essayé de sélectionner chaque objet en utilisant

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

mais est pas très utile que les notes peuvent prendre toute forme, donc un clic au dessus de la note coin gauche pourrait être manquée sélection. Looping à travers chaque pixel juste pour obtenir une sélection ne marcherait pas.

Réponse courte est non pas parce que le seul moyen de récupérer la couleur de la course est par la sélection de documents.

Il y a quelques solutions de contournement si:

  1. Dans l'EDI, utilisez Rechercher et remplacer, choisissez la couleur au lieu du texte et remplacer la couleur de votre note avec quelque chose de transparent. Malheureusement ce n'est pas beaucoup d'une solution. Il va juste cacher les notes, ne pas les supprimer. trouver flash et remplacer
    (source: sonic.net )

  2. il est facile d'obtenir les notes de JSFL: Placez toutes les notes dans le courant timeline dans une couche et lui donner un nom évocateur, dire « _notes », puis juste supprimer cette couche.

par exemple.

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

Espérons que quelqu'un peut fournir une belle entaille pour sélectionner des objets par couleur dans JSFL. Il y a pas mal de choses que vous pouvez faire dans l'IDE, mais ne peut pas les faire à partir de JSFL : (

HTH

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top