`

[转] [Flash/Flex] (Adobe荐文)Flash动画学习指导:使用JSFL

阅读更多

  • 资讯类型: 翻译
  • 来源页面: http://www.adobe.com/devnet/flash/learning_guide/animation/part13.html
  • 资讯原标题: Animation learning guide for Flash: Using JSFL
  • 资讯原作者: Jen deHaan
  • 我的评论: 
    对这篇文你有啥看法,跟贴说说吧!欢迎口水和板砖,哈哈。欢迎大家和我们一同分享更多资讯。

    要求
    知识储备                  软件需求                                             范例
    flash的基础知识       Flash Professional CS5 (下载测试版)       motion.jsfl 

    用户等级
    初级


    多样的JavaScript APIs已经加入进Flash Professional CS5了,可以让你应用到以下的工作范畴:
        * 创建和移除时间轴动画对象
        * 获取和设置时间轴动画XML
        * 使用那些之前版本并不支持的针对时间轴动画对象的JSFL命令和属性。
    正因为有了这些改变,创建操作动画对象、动画数据或是不同文档间的动画重用等的命令或工具变得更容易。针对新的动画对象的新增API列表如下,这些对象是Frame对象的一部分(有一些是Timeline对象的一部分):
        * convertMotionObjectTo2D()  更多
        * convertMotionObjectTo3D()  更多
        * createMotionObject()  更多
        * getMotionObjectXML()  更多
        * hasMotionPath()  更多
        * is3DMotionObject()  更多
        * isMotionObject()  更多
        * removeMotionObject()  更多
        * selectMotionPath(select)  更多
        * setMotionObjectDuration(duration, stretch)  更多
        * setMotionObjectXML(xml, endAtCurrentLocation)  更多
        * tweenInstanceName()  更多

    使用动画对象的API
    下面就是一个简单的范例,创建了一个新的文档,层,矩形和该层上的动画对象。在新的JSFL文档里添加下面的代码并运行脚本(你也可以在针对这篇文章的源文件里得到这段代码):
    1. //Create a new document, FPS set to 24. fl.createDocument("timeline"); fl.getDocumentDOM().frameRate = 24; var doc = fl.getDocumentDOM(); var my_tl = doc.getTimeline(); //used for creating a rectangle: left, right, top, bottom. var l = 0; var r = 10; var t = 0 var b = 10; //Function to draw the rectangle this.drawRect = function() { document.addNewRectangle({left:l, top:t, right:r, bottom:b}, 0); document.setSelectionRect({left:l, top:t, right:r, bottom:b}); //offset next square by following for multiple examples l+=30; r+=30; }; //Get the current frame this.getCurrentFrame = function(){ var layer = my_tl.layers[my_tl.currentLayer]; var frame = layer.frames[my_tl.currentFrame]; return frame; } // Add layer my_tl.addNewLayer("Create a tween"); //Create and select the rectangle drawRect(); //Get the frame for this layer var theFrame = getCurrentFrame(); //Create a motion object if(theFrame && !theFrame.isMotionObject()){ my_tl.createMotionObject(); }
    复制代码
    如果是要了解如何设置动画XML数据,可以在上面的代码后添加这段代码,然后再次运行脚本:
    1. //Add another layer my_tl.addNewLayer("Set Motion XML"); //Create and select the rectangle drawRect(); //Get frame for this layer var theFrame = getCurrentFrame(); //Create a motion object from selection if(theFrame && !theFrame.isMotionObject()){ my_tl.createMotionObject(); } //Set motionXML to "bounce-smoosh" preset motion XML var motionXML = ('<AnimationCore TimeScale="24000" Version="1" duration="75000"><TimeMap strength="0" type="Quadratic"/> <TimeMap strength="4" type="BounceIn"/><metadata><names> <name langID="en_US" value="bounce-smoosh"/></names> <Settings orientToPath="0" xformPtXOffsetPct="0.5" xformPtYOffsetPct="0.995652" xformPtZOffsetPixels="0"/> </metadata><PropertyContainer id="headContainer"><PropertyContainer id="Basic_Motion"><Property enabled="1" id="Motion_X" ignoreTimeMap="0" readonly="0" visible="1"><Keyframe anchor="0,0" next="0,0" previous="0,0" roving="0" timevalue="0"/><Keyframe anchor="0,0" next="0,0" previous="0,0" roving="0" timevalue="74000"/> </Property><Property TimeMapIndex="1" enabled="1" id="Motion_Y" ignoreTimeMap="0" readonly="0" visible="1"><Keyframe anchor="0,0" next="0,0" previous="0,0" roving="0" timevalue="0"/><Keyframe anchor="0,273" next="0,273" previous="0,273" roving="0" timevalue="74000"/></Property><Property enabled="1" id="Rotation_Z" ignoreTimeMap="0" readonly="0" visible="1"><Keyframe anchor="0,0" next="0,0" previous="0,0" roving="0" timevalue="0"/></Property> </PropertyContainer><PropertyContainer id="Transformation"> <Property enabled="1" id="Skew_X" ignoreTimeMap="0" readonly="0" visible="1"><Keyframe anchor="0,0" next="0,0" previous="0,0" roving="0" timevalue="0"/></Property><Property enabled="1" id="Skew_Y" ignoreTimeMap="0" readonly="0" visible="1"><Keyframe anchor="0,0" next="0,0" previous="0,0" roving="0" timevalue="0"/></Property> <Property enabled="1" id="Scale_X" ignoreTimeMap="0" readonly="0" visible="1"><Keyframe anchor="0,100" next="0,100" previous="0,100" roving="0" timevalue="0"/><Keyframe anchor="0,100.21" next="0,100.21" previous="0,100.21" roving="0" timevalue="35000"/><Keyframe anchor="0,191.254" next="2000,191.254" previous="-2000,191.254" roving="0" timevalue="37000"/><Keyframe anchor="0,100.21" next="0,100.21" previous="0,100.21" roving="0" timevalue="39000"/><Keyframe anchor="0,100" next="0,100" previous="0,100" roving="0" timevalue="54000"/><Keyframe anchor="0,171.056" next="2000,171.056" previous="-2000,171.056" roving="0" timevalue="56000"/><Keyframe anchor="0,100" next="0,100" previous="0,100" roving="0" timevalue="58000"/><Keyframe anchor="0,100" next="0,100" previous="0,100" roving="0" timevalue="66000"/><Keyframe anchor="0,150" next="1000,149.97" previous="-1000,149.735" roving="0" timevalue="67000"/> <Keyframe anchor="0,100" next="0,100" previous="0,100" roving="0" timevalue="68000"/></Property><Property enabled="1" id="Scale_Y" ignoreTimeMap="0" readonly="0" visible="1"><Keyframe anchor="0,100" next="0,100" previous="0,100" roving="0" timevalue="0"/><Keyframe anchor="0,100" next="0,100" previous="0,100" roving="0" timevalue="35000"/> <Keyframe anchor="0,60" next="2000,60" previous="-2000,60" roving="0" timevalue="37000"/><Keyframe anchor="0,100" next="0,100" previous="0,100" roving="0" timevalue="39000"/><Keyframe anchor="0,100" next="0,100" previous="0,100" roving="0" timevalue="54000"/><Keyframe anchor="0,75.2218" next="2000,75.2727" previous="-2000,75.1418" roving="0" timevalue="56000"/> <Keyframe anchor="0,100" next="0,100" previous="0,100" roving="0" timevalue="58000"/><Keyframe anchor="0,100" next="0,100" previous="0,100" roving="0" timevalue="66000"/><Keyframe anchor="0,80" next="1000,80" previous="-1000,80" roving="0" timevalue="67000"/><Keyframe anchor="0,100" next="0,100" previous="0,100" roving="0" timevalue="68000"/></Property> </PropertyContainer><PropertyContainer id="Colors"/><PropertyContainer id="Filters"/></PropertyContainer></AnimationCore>'); //set motion XML, set applyTweenToCurrentPosition to false if(theFrame.isMotionObject()){ theFrame.setMotionObjectXML(motionXML.toString(), false); };
    复制代码

    你可能已经发现第三方开发者已经开始利用这些API,来制作面板和其他工具,来使得创建动画更为容易并成为你工作中的有力臂助。

    从这里起步

    阅读其他有关flash里的动画学习手册部分。

     

    http://bbs.9ria.com/thread-72749-1-1.html

     

    分享到:
    评论

    相关推荐

      Flash JSFL命令集

      《Flash JSFL命令集:掌握动画与资源管理的利器》 在数字媒体和网页设计领域,Adobe Flash(现称为Adobe Animate)曾是创建交互式内容的重要工具。Flash的JavaScript脚本语言,即JSFL(Flash JavaScript FLexible ...

      jsfl中文帮助文档

      JSFL(JavaScript for Flash)是Adobe Flash Professional软件中使用的脚本语言,允许开发者使用JavaScript语法编程来控制Flash Professional界面和编辑环境。 2. 法律声明知识点:文档中提到,有关Adobe Flash ...

      Flash CS5 JSFL开发手册API帮助文档

      Adobe Flash Professional CS5是一款由Adobe Systems Incorporated开发的专业动画创作软件,它以强大的动画制作能力而著称,曾经是网页动画设计和游戏开发领域的主力工具。而JSFL(JavaScript Flash Language)是...

      Animate:用于Adobe Animate的Jsfl动画工具

      本资源"Animate:用于Adobe Animate的Jsfl动画工具"显然旨在帮助用户更高效地利用JsFL进行动画制作。 JsFL是一种脚本语言,它可以直接与Animate的内部结构交互,包括时间轴、层、帧、形状、元件等。使用JsFL,用户...

      Flash重命名库元件JSFL命令

      "Flash重命名库元件JSFL命令"是一个用于批量重命名库中元件的工具,它通过JavaScript for Flash (JSFL) 脚本来实现这一功能。JSFL是Flash Professional内置的一种脚本语言,专门用来自动化和自定义Flash的工作流程。...

      FLASH操作评分常用JSFL

      FLASH操作评分常用JSFL,FLASH操作评分常用JSFL,可制作FLASH的自评分练习题,可制作FLASH的自评分练习题,可制作FLASH的自评分练习题,

      jsfl:一些jsfl的操作,用于前端做flash使用

      JavaScript for Flash (JSFL) 是Adobe Flash Professional中的脚本语言,它允许开发者自动化工作流程、编辑Flash文档、创建自定义面板以及执行各种操作。在前端开发中,JSFL有时会被用来增强与Flash相关的项目,尽管...

      flash元件批量改名命令(jsfl)

      为了解决这个问题,我们可以使用JavaScript for Flash (JSFL) 来编写自定义脚本,实现元件的批量改名功能。"flash元件批量改名命令(jsfl)"这个主题就是关于如何通过JSFL脚本来自动化这个过程。 首先,我们需要...

      jsfl技术文档(帮助文档)

      JSFL(JavaScript for Flash)是Adobe Flash Professional中的一套脚本语言,用于自动化工作流程、创建自定义工具集以及扩展Flash开发环境的功能。这个技术文档旨在深入探讨JSFL的基本概念、语法、功能以及在实际...

      例说利用JSFL批改FLASH操作题的方法.doc

      JSFL(Flash JavaScript)是Adobe Flash Professional中的扩展脚本语言,它允许用户通过JavaScript语法控制Flash的创作环境,包括编辑、导出和批改FLA文件。JSFL技术在自动批改Flash操作题方面具有显著优势,尤其...

      jsfl技术文档

      JSFL,全称为JavaScript for Flash,是Adobe提供的一个脚本语言,主要用于自动化Flash Professional(现更名为Adobe Animate)的工作流程、创建自定义工具以及编辑Flash项目。JSFL允许开发者深入到Flash软件的内部,...

      flash 元件批量改名命令(jsfl)

      /////////////////////////////////// // //1、将文件另存为:RandomNameLibaray.jsfl //2、在flash中直接运行命令 // //////////////////////////////////

      序列图转swf,flash动画制作

      3. Flash动画制作:Flash动画制作通常涉及使用Adobe Flash Professional等工具,通过时间轴管理帧和层,将位图、矢量图形和脚本结合,创作出具有交互性的动画内容。在本案例中,人物动作序列图被导入到Flash中,通过...

      当前时间轴转位图序列.jsfl

      这是一个flashCS系列使用的jsfl文件。首先打开fla文档(该fla文档必须被保存过),之后双击运行该文件会将当前正在编辑的时间轴转换成位图序列。 适合flash移动开发、 flash网游素材制作和优化、 flash stage3D材质...

      Flex与Flash相互调用实例

      Flex和Flash是两种在Web开发中广泛使用的技术,它们各自有着独特的优势,但在某些场景下,需要它们相互协作,实现更复杂的功能。本教程通过一个实际的调用实例,展示了Flex与Flash如何相互通信。 Flex是基于...

      JSFL导出元件滤镜配置

      在JavaScript for Flash (JSFL) 中,我们可以通过编写脚本来自动化Flash Professional的工作流程,包括导出元件、应用滤镜和配置这些滤镜。本话题主要关注如何使用JSFL导出元件及其滤镜设置,这对于批量处理动画或...

      JSFL实用代码

      JavaScript for Flash(简称JSFL)是Adobe Flash Professional中的一种脚本语言,用于自动化工作流程、扩展功能和批量处理任务。JSFL提供了对Flash文档(FLA)和Flash影片(SWF)的底层访问,允许开发者编写自定义...

      flash命令 jsfl 自动把序列图分散到各个帧上

      1.把脚本放到 C:\Users\lenoo\AppData\Local\Adobe\Flash CS6\zh_CN\Configuration\Commands下面; 2.重启flash; 3.打开一个fla文件; 4.导入序列图; 5.在库中选中刚才导入的序列图; 6.选择菜单-命令-Sort frames...

    Global site tag (gtag.js) - Google Analytics