JSFL是一个很强大的东西,而且研究的越深越发现其功能的强大。
JSFL存放路径
1)JSFL文件可以单独存放于磁盘中,只要选择其 打开方式 为Adobe Falsh即可。
2)可以把JSFL文件放在 C:\Documents and Settings\*username*\Local Settings\Application Data\Adobe\Flash CS4\zh_CN\Configuration\Commands 然后进入任何一个Flash文件,选择命令菜单就可以看见你新建的JSFL了。
对于第一种存放方法适用于用其他工具(如Java)写一些批量操作的脚本,而第二种方式更方便与对特定Flash操作的脚本化(如帮美术完成一些复杂枯燥的操作等。)
JSFL中函数的使用
在脚本中可以加入函数的调用 如:
function print(_message)
{
fl.trace(_message);
//return something if you want you can return somethings
}
注意JSFL中的函数和As代码中的函数有几点不同:
1)JSFL中函数(包括变量)声明是不用且不能指定类型的,如 var i:int 等
2)如果函数需要retun结果的话,直接return即可不用在function前面声明return的类型
写文件操作
JSFL强大就强大在于它可以写出文件,这样就很容易和其他程序共享信息。
写文件的方法非常简单
FLfile.write( filePath , message , "append");
filePaht填入文件的路径 如 file:///test.xml
message为需要写入的内容
append 参数表示是添加在现有文件的结尾,而不是覆盖写入
舞台相关类
1)Document : Document是指的用户打开的一个FLA文件,一个FLA文件就是一个Document
2)Timeline:Timeline就是用于编辑Flash的时间轴
3)Layer:Layer就是时间轴上的层
4)Frame:Frame就是层里面的帧
5)Element:Element是帧里面的元素,也就是能在舞台上看见的元素
舞台上的元素是存在继承关系的 SymbolInstance->Instance->Element
Library相关类
1)Library就是对应的Flash的库
2)Item就是对应着库中的原件。
实例演示
执行下边的脚本会使所选元件内部所有显示对象的坐标调至(0,0)点。
fl.outputPanel.clear()
start();
function start()
{
if(document.selection.length!=1)
{
fl.trace("对不起,您必须选择一个元件");
return;
}
var element=document.selection[0];
//判断当前所选对象是否为元件
if(element.elementType!="instance"||element.instanceType!="symbol")
{
fl.trace("对不起,您只能选择元件");
return;
}
//进入当前所选元件
fl.getDocumentDOM().enterEditMode('inPlace');
//遍历时间轴z轴上的所有图层
var timeline=document.getTimeline();
for(var j=0;j<timeline.layers.length;j++)
{
moveElement(timeline.layers[j])
}
//退出元件
fl.getDocumentDOM().exitEditMode();
}
//移动每帧上每个对象到(0,0)点位置
function moveElement(layer)
{
//遍历遍历图层上的每一帧
for(var i=0;i<layer.frames.length;i++)
{
var frame=layer.frames[i];
//遍历每一帧上的所有显示对象
for(var j=0;j<frame.elements.length;j++)
{
var element=frame.elements[j];
element.x=0;
element.y=0;
}
}
}
作者:王闯
email :
[email protected];