【问题标题】:Can you view the ActionScript of an FLA file that was saved in a newer version than your Flash program?您能否查看以比 Flash 程序新版本保存的 FLA 文件的 ActionScript?
【发布时间】:2013-03-16 06:36:13
【问题描述】:

我有一个旧版本的 Flash(确切地说是 Flash AS3 CS3)。

我正在参加关于 ActionScript 编码的大学课程。但是,我学校使用的版本,以及我们教科书的源文件,都保存在AS3 CS5或更高版本中。我试图不让它影响到我,但我发现在家完成我的作业很困难。

有没有办法让我查看保存在 CS5 或更高版本中的 FLA 文件中的 Actionscript,当 我只有 Flash CS3?

如果有,那会很好地解决我的问题...

>> 编辑

由于我可能不清楚,我想问是否有办法让我查看保存在 CS5 或更高版本中的 .FLA 文件的 ActionScript在我的计算机上(只有 CS3) .这里的假设是我将无法再访问装有 CS5 的计算机。

请注意,我并不特别关心打开整个文件——我想要的只是嵌入在时间轴中的 ActionScript。

【问题讨论】:

    标签: flash actionscript flash-cs5 flash-cs3


    【解决方案1】:

    一目了然,flash CS5 似乎无法保存为 CS3 格式;最低可以到CS4。

    但是,fla 中的大部分代码可能会被删除并保存在单独的 .as 文件中,然后在您可以在家重新创建的新 CS3 fla 中运行。这完全取决于 fla 的内容是什么,我正在对这些 fla 的内容做出一些假设。但是,如果它只是时间轴上的大部分代码,可能带有一些简单的电影剪辑符号,那可能是有可能的。


    根据问题中的编辑进行编辑

    据我所知,只有flash可以打开fla文件,但我最近发现了这个,但从来没有用过。但是它可能对您有用:我已经阅读/注意到您可以将 Flash CS5 fla 重命名为 zip 文件,它将打开/提取。只需将扩展名从 .fla 更改为 .zip 然后解压即可。

    里面的内容你可以挖掘。您可能最感兴趣的文件是“DOMDocument.xml”。看着它,它似乎描述了火焰的构成……包括框架上的任何动作脚本。

    例如,我做了一个空fla,在1、2、4帧中放了一些代码,如下:

    在第 1 帧:

    trace("This is frame 1, line 1");
    trace("This is frame 1, line 2");
    

    在第 2 帧:

    trace("This is frame 2, line 1");
    trace("This is frame 2, line 2");
    

    在第 4 帧上(跳过第 3 帧):

    trace("This is frame 4, line 1");
    trace("This is frame 4, line 2");
    

    只是一些跟踪语句。按照我刚才所说的并查看 xml,在时间轴->图层->帧->Actionscript->脚本标签中,我可以看到我的脚本:

    <timelines>
              <DOMTimeline name="Scene 1" currentFrame="3">
                   <layers>
                        <DOMLayer name="Layer 1" color="#4FFF4F" current="true" isSelected="true">
                             <frames>
                                  <DOMFrame index="0" keyMode="9728">
                                       <Actionscript>
                                            <script><![CDATA[trace("This is frame 1, line 1");
    trace("This is frame 1, line 2");]]></script>
                                       </Actionscript>
                                       <elements/>
                                  </DOMFrame>
                                  <DOMFrame index="1" keyMode="9728">
                                       <Actionscript>
                                            <script><![CDATA[trace("This is frame 2, line 1");
    trace("This is frame 2, line 2");]]></script>
                                       </Actionscript>
                                       <elements/>
                                  </DOMFrame>
                                  <DOMFrame index="2" keyMode="9728">
                                       <elements/>
                                  </DOMFrame>
                                  <DOMFrame index="3" keyMode="9728">
                                       <Actionscript>
                                            <script><![CDATA[trace("This is frame 4, line 1");
    trace("This is frame 4, line 2");
    trace("This is frame 5, line 3");]]></script>
                                       </Actionscript>
                                       <elements/>
                                  </DOMFrame>
                             </frames>
                        </DOMLayer>
                   </layers>
              </DOMTimeline>
         </timelines>
    

    帧索引似乎从 0 开始,脚本本身被包裹在 CDATA 标记之间。

    我还制作了一个测试 fla,我的库中有一个简单的影片剪辑项目。这会生成一个 xml 文件,该文件在提取时描述库目录中的该项目。然而,我在解压时确实收到了“此 zip 文件已损坏”的错误……但它似乎仍然可以正常解压。

    按照我所说的,您可能需要做一些工作来拼凑一个更复杂的 fla 文件,但希望这是一个开始吗?

    【讨论】:

    • 感谢您的回答...但是,我不会问我是否可以在闲暇时简单地这样做:这是因为我无法访问 CS5 程序我不能简单地将 ActionScript 从 .FLA 剪切并粘贴到可读的 .AS 文件中...我在问是否有办法让我在不使用 flash 的情况下获取代码...
    • 成功了!我提取了 DOMDocument,在 Safari 中打开它,所有的 ActionScript 都在那里!非常感谢!
    猜你喜欢
    • 2018-07-27
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    • 2011-03-20
    • 2014-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多