【问题标题】:Parsing a SWF file in Linux在 Linux 中解析 SWF 文件
【发布时间】:2012-01-25 15:25:45
【问题描述】:

我们想编写一些自动化的过程,从安静的几个 SWF (Flash ActionScript 3) 文件中获取数据。

除此之外,我们希望它作为自动部署脚本的一部分自动运行(用 Ant 编写,在 Linux 上运行)。

你们知道任何允许检查每帧实例数据的 SWF 解析工具吗? (据我在 Google 中看到的,Adobe AIR 不会在 console-linux 中运行)

想法? :)

【问题讨论】:

  • 您能否详细说明您想从 SWF 获得什么? (资产?元数据?)——我不太清楚你所说的“每帧实例数据”是什么意思
  • 基本上,我们将各种对象存储在定义对象尺寸的 SWF 中。因此,要将其转换为 AS3 代码,我们将查看该框架上的实例(子项),检查它们的类型/位置,并据此计算尺寸。因此,从原始意义上讲,我们需要访问每帧的 childrenCount/Positions/Type。这有意义吗?

标签: linux actionscript-3 parsing console flash


【解决方案1】:

使用 Adob​​e AIR

我们使用 Adob​​e AIR SDK 完成了这项工作。 AIR SDK versions 2.6 and earlier 支持 Linux。

您无需一路为 Linux 桌面打包您的应用,只需使用 adl 工具即可运行您的应用。

首先,编写一个 ActionScript 应用程序,从 SWF 加载和解析数据并将其编译为 loader_app.swf

然后创建一个应用描述符xml,如:

<?xml version="1.0" encoding="UTF-8"?> 
<application xmlns="http://ns.adobe.com/air/application/2.6"> 
    <id>HelloWorld</id> 
    <versionNumber>0.0.1</versionNumber> 
    <filename>HelloWorld</filename> 
    <initialWindow> 
        <content>loader_app.swf</content> 
    </initialWindow> 
    <supportedProfiles>extendedDesktop</supportedProfiles>
</application>

要在 Linux 下运行此应用程序,只需运行:

> /<path_to_air_sdk>/bin/adl app.xml

注意事项:

  • 我隐约记得可以在 headless 模式下运行 air,但我们的解决方法是在 X 显示器上运行虚拟 VNC 服务器:99 并设置 DISPLAY=:99 以让 adl 使用该 X 服务器,所以我们可以从 cron 运行它。

  • 如果您希望 AIR 应用程序的多个实例同时运行,则需要更改 app.xml 中的字段。 AIR 只为每个 id 创建一个实例。

如果您想了解任何步骤,请告诉我。

没有 Adob​​e AIR

另一种可能性是使用redtaramin,它声称允许从命令行运行动作脚本。不幸的是,我没有使用此工具的经验。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-18
    • 1970-01-01
    • 2016-11-09
    • 1970-01-01
    • 2017-08-22
    • 1970-01-01
    相关资源
    最近更新 更多