Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 有没有办法将swf转换为.abc文件?_Actionscript 3_Flash_Apache Flex - Fatal编程技术网

Actionscript 3 有没有办法将swf转换为.abc文件?

Actionscript 3 有没有办法将swf转换为.abc文件?,actionscript-3,flash,apache-flex,Actionscript 3,Flash,Apache Flex,我正在寻找一种方法,最好是命令行实用程序,为编译后的swf输出一个.abc文件。我已经研究了asc.jar,但到目前为止,它似乎只能接受类,而不能接受编译后的SWF。有人知道这样做的好方法吗 此过程的最终目标是使用Zwetan的RedTamarin项目在加载的swf中的某些特定类上运行DescripteType,但SecurityDomain会使我无法使用Loader.loadBytes。如果有另一种通过命令行描述加载的swf中的类的好方法,我也会对该解决方案感兴趣 干杯 J我不确定您想要完成什

我正在寻找一种方法,最好是命令行实用程序,为编译后的swf输出一个.abc文件。我已经研究了asc.jar,但到目前为止,它似乎只能接受类,而不能接受编译后的SWF。有人知道这样做的好方法吗

此过程的最终目标是使用Zwetan的RedTamarin项目在加载的swf中的某些特定类上运行DescripteType,但SecurityDomain会使我无法使用Loader.loadBytes。如果有另一种通过命令行描述加载的swf中的类的好方法,我也会对该解决方案感兴趣

干杯


J

我不确定您想要完成什么,但可能会有用。

如果您查看最近的abcdump.as有转储*.abc文件的选项

选项-a从中提取ABC块 SWF/SWC,但不显示其内容


只是对这个问题的更新。我需要从SWF文件中提取ABC文件,并尝试了不同的选项。我唯一能在我的环境(MacOSX 10.7)中使用的工具是使用命令行工具。

使用谷歌代码中的apparat(需要scala),将所有DOABC定义合并到一个:

cd装置&&./reducer-m true-i file.swc-o merged.swc

然后从merged.swc中提取(解压)library.swf

(嗯,问题是关于swf2abc的。我认为您可以直接“减少”您的file.swf)

然后,您可以使用abcdump从谷歌代码MAASHACK中提取(唯一的)abc:

abcdump-a library.swf


然后你就得到了(一个独特的)图书馆。abc

谢谢你,葡萄柚,但这还不够。它看起来像nemo,以及swfdump和flasm,只是踢出了一个人类可读的字节码表示,而不是实际的.abc文件。在nemo列出的输入格式中,它列出了.swf(压缩和未压缩)和.abc,但为两者提供相同的文本转储。我希望从.swf转换为.abc,无需阅读:P@Jeremy:SWF只是一种容器格式。据我所知,ABC是一成不变的。只需抓取SWF规范,了解ABC是如何嵌入的。或者,您可以使用flex sdk中的
/lib/
-abc source.swf>out中的
swfdump
swfutils
。swfdump生成的sabc文件将与前面提到的相同,这意味着是人类可读的。我说的是一个合法的.abc文件,如这两篇文章所述:他使用的.abc文件可以通过asc从类生成,然后加载到Tamarin运行时。以这样创建的.abc文件为例,将其与swfdump、nero或flasm中的文本转储进行比较,您将看到不同之处。此外,我忘了重申几点:首先,我希望从swf而不是类生成.abc文件,因此我似乎无法使用asc.jar工具。第二,我正试图做第二篇文章描述的事情,那就是在Tamarin的运行时加载类定义。如果还有其他方法(除了Loader.loadBytes),我也会对其他方法感兴趣。.swf-.abc转换是我正在接受的中间步骤,如果可以避免的话,我也会对此保持冷静。告诉所有感兴趣的人,我在OSX中运行apparat时有问题,但在ubuntu中运行良好。