最近看了github的jsfl的一些开源的文件,感觉开源真厉害,可以看到不同的人的思维是怎样的。最近想继续整合jsfl的新版本,今天先练习一下,采用jsfl输出文本代码,其实在fb里面采用代码片段即可完成这种事情。不过折腾一下也是学习一种过程。好,下面粘贴一下代码。
在jsfl ,常用的一种套路就是选择元件,然后干些什么事情。依旧这个套路,在jsfl里面,我发现一些大神制作了很多有意思的jsfl 脚本。例如选择一组元件,输出数组,选择元件快速隐藏,还有添加滤镜代码等等,我觉得这些都是创意,其中比较实用性是快速裁剪九宫,这个比较实用,不知道为何adobe 一直没把这个脚本加进去ide去。不过网上已经有几个不同的版本可以完成这个事情了。
下面就是一个简单的选择文本输出一些代码的简单脚本。这个脚本还可以继续扩展其他实用性的脚本。基本的套路依旧选择什么 干点什么事情。
var doc = fl.getDocumentDOM();
var selection = doc.selection;
var len = selection.length;
for(var i = 0; i < len; i++)
{
var selectItem = selection[i];
if(selectItem.elementType == "text")
{
var str="var textField:TextField=new TextField();"
fl.trace(str);
fl.trace("textField.x="+selectItem.x+";");
fl.trace("textField.y="+selectItem.y+";");
fl.trace("textField.width="+selectItem.width+";");
fl.trace("textField.height="+selectItem.height+";");
fl.trace("textField.height="+selectItem.height+";");
fl.trace("var tf:TextFormat = new TextFormat();");
var font=getFontName(selectItem.textRuns[0].textAttrs["face"]);
fl.trace('tf.font ="$1";'.replace("$1",font));
fl.trace(" textField.defaultTextFormat = tf;");
fl.trace("textField.text=\""+selectItem.textRuns[0].characters+"\";");
}
}
function getFontName(name)
{
var obj=new Object();
obj["宋体"]="SimSun";
obj["黑体"]="SimHei";
//补充下去
return obj[name];
}