我正在寻找一个JSFL功能,可以选择一个机架上的所有项目,并删除匹配特定的颜色,例如,所有的笔画#0000FFJSFL:删除所有匹配特定颜色的笔画?
基本上我用红铅笔划会让很多便笺和铅笔工具。但是,当我完成时,我只想告诉闪光灯从屏幕上删除所有红色的斯托克斯,并保持一切完好无损。任何解决方案?
我正在寻找一个JSFL功能,可以选择一个机架上的所有项目,并删除匹配特定的颜色,例如,所有的笔画#0000FFJSFL:删除所有匹配特定颜色的笔画?
基本上我用红铅笔划会让很多便笺和铅笔工具。但是,当我完成时,我只想告诉闪光灯从屏幕上删除所有红色的斯托克斯,并保持一切完好无损。任何解决方案?
好问题!
查看JSFL文档中的Document对象,我发现检索Stroke的唯一方法是通过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);
每个对象,但是这不是非常有帮助的笔记可以采取任何形状, 所以点击在音符的顶级左C orner可能会错过 选择。循环遍历每个像素只是为了得到一个选择将不起作用。
简答题并不是因为检索笔触颜色 的唯一方法是通过文档选择。
有一些解决方法,但:
在IDE中,使用查找和替换,选择而不是文本 颜色,并用透明的东西取代您的笔记本色。不幸的是 这不是一个很好的解决方案。它只会隐藏笔记,而不会删除它们。 flash find and replace http://www.sonic.net/mnitepub/pccafe/reviews/macromedia_flash_mx2004/find_and_replace.gif
使它轻松地从JSFL调:将所有的音符在当前 时间表一层,并给它一个名字暗示,说“_notes”,然后就 删除该层。
例如,
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中这样做,但can't do them from JSFL :(
HTH
呀,好像它应该是一个非常基本的操作,而是人,它只是似乎并不可能基于n的能力jsfl本身。 – Ibis 2010-07-08 00:19:29
@Ibis jsfl有时会很烦人。很高兴看到flashfilmmaker.com网站活着并踢btw :) – 2010-07-08 09:29:24