JSFL实用实例

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

你可能感兴趣的:(JSF)