About

<#TEMPLATE_INCLUDE_NINEPAGE_ABOUTME#>
  • Feb

    20

    强大的JSFL,开发Flash拓展插件

    • 0 Comments
    • Flash Platform

    1、Creating Flash Extensions — Pt. 1: Introduction

    介绍jsfl,如何从history中查看jsfl,对jsfl有基础的认识。

    2、Creating Flash Extensions — Pt. 2: The DOM

    dom结构,就是fla在jsfl语言中结构:

    fl.documents[0].timelines[0].layers[0].frames[0].elements[0];

    3、Creating Flash Extensions — Pt. 3: Manipulating the Library

    如何操作资源库,作者通过对不同类型的资源进行文件夹管理,很实用.

    创建一些交互界面,alert弹窗,确认弹窗等。 

    5、Creating Flash Extensions — Pt. 5: SWF Panels :

    用swf发布来做自定义面板,是不是很库呢?作者也推荐了几款相应的swf面板组件。 

    6、Creating Flash Extensions — Pt. 6: Custom Tools 

    自定义工具,这里可以让你自己做个画图工具了。 

     

    7、Creating Flash Extensions — Pt. 7: Distributing to Others :

    打包你开发的拓展,可以发给设计人员,也可以分享给其他人了。

     

    原文地址链接

    http://blog.fireyang.com/2011/03/29/2011-03-29-%E5%BC%BA%E5%A4%A7%E7%9A%84jsfl/

    其它相关链接

    http://kevincao.com/tag/jsfl/

    http://kevincao.com/2011/03/introduce-kafecomponent-part-2/

    Sep

    14

    在软件接力的过程中,经常会遇到需要将舞台上选中的位图(或其它对象)转换成影片剪辑的需求,图层和元件多的时候可以批量处理,方法如下。

    第一种方法:BatchPane + JSFL

    1、安装 BatchPane,安装方法《Flash IDE 批处理面板:BatchPane》。

    2、在 BatchPane 中输入以下代码: 

    var document = fl.getDocumentDOM();
    document.selectNone();

    var libraryItem = element.libraryItem;

    //这两行 _name 处理不是重点,只是为了处理位图转换后元件的名称
    //因为 PSD 或 AI 文件导入后一般都带有文件夹的路径,自己随意处理规则
    var _name = libraryItem.name;
    _name = _name.substr(_name.lastIndexOf("/") + 1);

    element.selected = true;
    document.convertToSymbol('movie clip', _name , 'top left');

    第二种方法:纯粹的 JSFL 代码

    var document = fl.getDocumentDOM();

    //被选择的所有对象
    var selections = document.selection;

    document.selectNone();

    for(var i=0; i <selections.length; i++)
    {
        var element = selections[i];
        var libraryItem = element.libraryItem;

        //这两行 _name 处理不是重点,只是为了处理位图转换后元件的名称
        //因为 PSD 或 AI 文件导入后一般都带有文件夹的路径,自己随意处理规则
        var name = libraryItem.name;
        name = name.substr(name.lastIndexOf("/") + 1);

        fl.trace(name);

        element.selected = true;

        document.convertToSymbol('movie clip', name , 'top left');

        document.selectNone();
    }
    fl.trace("结束:》》》》》》》》》》》》》》》》》》》》》》》");

    Apr

    1

    最近做了一款场景游戏,每个场景中都有数十个物品需要“排版”——每个物品都涉及到坐标定位、缩放、旋转、叠加,甚至个别物体需要镜像反转,算上叠加的物品,背景其它元素等,所有关卡加起来有近200个这样的物品,如果每个物品都使用纯代码的方式去编写坐标、缩放、旋转之类的属性值,我觉的我一定是会疯掉的——因为一开始的时候我真的这么做了:我花了一上午将近 3个小时,只写了 5 个物品的“排版”,写第 6 个时我已经要晕了。

    然后就去 Google 上寻找 Starling 可视化编辑的工具,比较了之后,最终选择了 lang 神开发的 StarlingSWF ,主要原因有二个:

    一、StarlingSWF 生成的资源是静态的,它比其它运行时动态生成或转换出来的效率要高。StarlingSWF 提供的类库都继承自原始的 Starling 的类,从加载资源到管理资源,和我以往使用 AssetManager 类基本都一样。反正对象和 API 都基本兼容,没有发现不兼容的对象或 API。

    二、:资料比较全,有提供完整资料的官方博客,而且它是中文的,可以省下大量去翻译其它类库资料的时间(人生最痛苦的事,就是等你花了大量的时间翻译完了之后,测试时发现性能完全不行;人生最最痛苦的事,就是等你花了大量的时间翻译完了之后,测试时性能也可以,应用到项目中去了,项目要接近尾声了,发现性能不行 - - !!

    StarlingSWF 试用感觉就像它自己的广告语那样“像传统Flash AS3开发一样在Starling上开发”。StarlingSWF 给我的感觉就是一个字:爽。再配合 zero 大神提供的 BatchPane,两个字,超爽。然后就没有然后了。

    可能和这两位大牛都使用中文写帮助资料有关系,所以这两个工具仅仅只是花了一下午不到的时间就基本上摸透了(如果是英文的话我估计又得花上个好几天 - -!)。在第二天的时候花了一天的时间就“排版”完成了,事实上是只花了一上午的时间就“排版”完成了,但第一次使用,难免出个幺蛾子:

    以往在手动命名某个实例时,因为懒的多打字母,所以一般都是用 mc、sp、obj 等作为前缀或后缀,一般从来不会超过 3 个字母作为后缀或前缀。因为用了 BatchPane 批量操作,在命名实例时特意很“贱”的加了一个很长的字符串“_instance”作为后缀,和 starling 或 starlingSWF 类库中使用的 “instance” 作为关键字产生了冲突,结果导致了在生成对象后,无法操作对象...然后折腾了一下午之后, lang 神终于看到了我的咨讯信息,告诉实例名中不能包含 instance 字符串让我更换实例名...所以懒人有懒福,以后千万别写那么全的后缀名 - -!!

    Mar

    15

    测试使用 StarlingSWF 时,感觉对元件进行操作时太机械化了。偶然发现这个 BatchPane 这个好东西,这些代码估计比较适合使用 StarlingSWF 的用户。

    一、将位图转影片剪辑元件

    //Flash IDE的舞台上先不要放任何元件
    var expName = item.name.split(".")[0]//不带后缀名 
    fl.getDocumentDOM().addItem({x:0,y:0}, item);
    fl.getDocumentDOM().selectAll();
    fl.getDocumentDOM().convertToSymbol("movie clip",expName,"top left") ;
    fl.getDocumentDOM().selectAll()
    fl.getDocumentDOM().deleteSelection();//清空舞台

    2、位图都改成 png / gif 压缩方式,并允许平滑

    if(item.itemType=="bitmap"){ 
     item.allowSmoothing = true;
     item.compressionType = "lossless";
    }

    3、修改类名(加前缀,后缀神马的都类似了)

    item.linkageExportForAS=true;
    item.linkageClassName="img_" + item.linkageClassName;//修改类名,给类名添加前缀

    4、获取舞台上的实例导出的类名(可以用来重命名实例) 

    var instance = element;
    var item = instance.libraryItem;
    fl.trace("This instance type is " + item.linkageClassName);

    JSFL 官方中文指南:http://help.adobe.com/zh_CN/flash/cs/extend/flash_extending_reference.pdf

    Mar

    15

    Flash IDE 批处理面板:BatchPane

    • 0 Comments
    • Flash Platform

    Flash IDE 用来制作可视化的素材和元件时非常方便,但当元件数量非常多的时候,如果需要重复的操作相同的过程,就会需要用到 *.jsfl,用这个 BatchPane 能更方便的运行 jsfl 代码。在新的 CC 版本中也测试过可以使用。

    下载地址201503151418017635.rar

    安方方法:新建一个 Flash JavaScript 文件,然后往里填" fl.trace(fl.configDirectory); ",得到一个文件夹路径,在该路径中找到 WindowSWF 的文件夹,然后将压缩包中的文件解压到 WindowSWF 目录后,重启 Flash IDE CS6,在“窗口—其它面板”(在 CC 版本中它会显示在“窗口—扩展”菜单里)中可以打开它,然后就可以开始写屌爆的 jsfl 代码了。 

    原文链接http://bbs.9ria.com/thread-169382-1-1.html

    Dec

    13

    Dec

    13

    没啥好说的,猛戳这里下载导出fla文件中所有图片的jsfl.rar