zoukankan      html  css  js  c++  java
  • 重构SWF为fla文件二

    2
     
      上面,我们已经大致介绍了ASV生成FLA文件的基本原理及过程,在进一步探讨ASV的还原特征前, 我们有必要廓清一些模糊认识:
      尽管ASV为我们提供了如此强劲的回复能力,但从理论上说,swf真正向fla逆转是不可能的!
      其主要原因是:
       swf数据经过特殊压缩处理,大量必要的信息都被丢弃,这在上面已经阐述过,这好比我们可以享用“可口可乐”的色、香、 味,但我们不可能还原出色、香、味的诸多组成成份。
      再有,Macromedia公司出于他们的普及策略,公布了 SWF 文件的格式,便于第三方软件支持swf格式,而FLA文件的格式是他们的最高商业机密 ,重构fla文件的难度极大。
      ASV能为我们做的,已经达到极限,非ASV无能,而是根本没法做得更好!
      那么是不是可以把ASV回复fla的精确度打个百分比?
      我认为不可能,因为有的swf可以99%地回复(如单层单场景的逐帧动画),而有的几乎连10%也做不到(使用了“UI组件”或智能MC)!
    这取决于动画内容的结构、所包含元素的性质,以及动画组件逻辑关系的繁简。
      那么,其中有什么规律吗?
      ASV为我们做这些事时,当然有它的一套方式,掌握了一些规律,你可以把得到的rebuild.fla文件进一步改造精化,以资更接近“可口可乐” 的色、香、味!
      ●ASV简介
       下面,我们来看一下swf文件中到底保留了哪些信息。
      打开ASV,装入一个swf文件,最好装入你相当熟悉的swf,比如自己的作品,如此更容易甄别其信息的精度,如下图所示:
      我们发现,ASV用“标签页”方式管理swf信息,你可能会看到以下几组 “标签页”:
    “时间线”、“帧”、“库”、“实例名”、“帧标签”、“AS代码”、“特殊标签”等等,而且,每个“标签页”中各包含不同的项目列表 ,每个元素各自拥有“属性”窗口。
      右图所显示的仅为“帧”标签窗口的情况。以上标签页是动态出现的,视所装入的swf内容而不同。
      请你化些时间,仔细地浏览一下ASV的信息库,我们可以得出以下几条认识:
      ·ASV已经从swf中获取了最高限度的信息,并且它的信息组织方式相当科学、细致、合 理。  更重要的还有ASV的拆解技术。你可与你拥有的同类软件作比较,要知道,将来进行重构时间线即“JSFL”时,就是根据信息的组织方式进行的。
     

      这也是各种swf拆解软件优与劣,强与弱的不同之处。
      ·从信息库中我们还发现,在swf文件中已经丢失了“时间轴”、 “库”、“场景”等关键的信息!而它的“帧”信息保留得最完整,这是还 原fla时最根本的依据!多场景的动画在swf文件中被合并为单场景,并且是以“帧”连续表示的,一帧也没少!而“时间线”是ASV读入swf时 根据“帧”中包含的元素重新建立的。
      注意,这个“库”(Library),跟原fla中的“库”根本是两回事哦!很显然,ASV中的“库”内容是根据从swf读入数据时的顺序排列,并且 依次重新命名为 Symbol x,后面标记着素材类型,以及在属性表内记录着全部信息,请你看看各symbol属性窗的“帧属性”,可相信我上面的话没错哦!原设计动画时的“元件库” 其实在swf中已经荡然无存!
      ·swf中保留着“帧标签”及“实例名”,这是恢复动画流程及动画元素的基本保证。大 家可以看一下,它们也是以“帧”为索引的。
      ·保留得最为完整的要数“AS代码”,它分成帧代码、按钮代码、MC代码等,它们也按 “帧”位置为索引。
      ·如果swf中含有视频,ASV将自动转换成flash专用视频格式:flv作为动画 素材。
      ·至于文本信息,如果你打散了对象,那文字同图形无异,否则swf还有字体及文字信 息。
       当我们在ASV中按下“Export Rebuild Data (JSFL)”菜单命令时,ASV就根据这些仅有的信息为我们构建一个恢复动画“时间线”的JS程序, 这个JS程序必需建立大量已经丢失了的东西,并且“猜想”一些原来可能是什么模样的属性,至此,我们可以体会到这是何等的不容易啊!
      我们不应该面对尚不如意的“时间线”而责怪ASV,我们应该珍视、充分利用已经得到的一切,况且目前你得到的绝对是能力之极限!
       继续下面的内容......

     
    2
  • 相关阅读:
    javascript功能插件大集合
    基于Swiper插件的简单轮播图的实现
    LeetCode24. 两两交换链表中的节点
    530. 二叉搜索树的最小绝对差
    416. 分割等和子集
    GAN ——Generative Adversarial Network 理解与推导(一)
    面试题 02.08. 环路检测(返回环路开头节点)
    141.环形链表-LeetCode
    357. 计算各个位数不同的数字个数 ——LeetCode
    LSTM的理解
  • 原文地址:https://www.cnblogs.com/bicabo/p/1681437.html
Copyright © 2011-2022 走看看