Php 在AdobeFlashCS4中提取SWF会导致编译器错误
我得到了一个SWF来编辑AS代码中的链接。 事实上,SWF使用了一些由PHP代码从数据库中实际检索到的XMLPhp 在AdobeFlashCS4中提取SWF会导致编译器错误,php,actionscript-3,flash,flash-cs4,swf-decompiler,Php,Actionscript 3,Flash,Flash Cs4,Swf Decompiler,我得到了一个SWF来编辑AS代码中的链接。 事实上,SWF使用了一些由PHP代码从数据库中实际检索到的XML menuXML.load("/sub/page/dynamic.php?genre=" + genre); 因此,关键是我们可以使用相同的SWF“mainfraim”,并根据dynamic.php?体裁中提供的链接使用不同的动画/源填充它们= 现在,我已经使用FlashDecompilerGold提取了SWF中的所有文件,并可以在AdobeFlash中再次打开它进行编辑。完成后,我输
menuXML.load("/sub/page/dynamic.php?genre=" + genre);
因此,关键是我们可以使用相同的SWF“mainfraim”,并根据dynamic.php?体裁中提供的链接使用不同的动画/源填充它们=
现在,我已经使用FlashDecompilerGold提取了SWF中的所有文件,并可以在AdobeFlash中再次打开它进行编辑。完成后,我输入CTRL+enter,立即出现4个编译器错误!!错误:
1x<遇到意外的“如果”>
2x<语句块必须以“}”结尾>
1x<在“.”运算符后有一个字段名。>
当原来的SWF完美工作时,这些错误怎么会出现呢
如果我没有设法解决这个问题,我必须找到如何创建SWF尝试使用的.php文件,该文件可以从数据库中选择适当的资源,我猜可以使用?类型显示它们=
谢谢 我不确定我是否理解您的问题,但似乎您需要更改传递给load方法的url。您的swf似乎也是Actionscript 2.0 反编译器可以正常工作,但是使用反编译器生成的fla文件对于生成相同的swf很少有用。有时代码是非法的,而且图形几乎总是错误的 我曾经不得不做一些简单的代码更改,比如将一些URL和其他简单的东西更改为swf,因为我们没有源代码,它们丢失了,也没有备份 我用过这个,效果很好,也没有我最初想象的那么难 Flasm不是反编译器,而是反汇编程序。它获取您的swf,解析actionscript字节码,并生成一个带有类似程序集代码的文本文件。您可以编辑该代码并重新组装swf。它不涉及图形和动画,所以这是我需要的,也许可以为你工作 我做了一个小测试,效果很好 我从佛罗里达州的代码开始:
var xml:XML = new XML();
xml.ignoreWhite = true;
xml.onLoad = function(ok:Boolean):Void {
if(ok) {
_debug_txt.text = "ok";
_debug_txt.text = xml;
} else {
_debug_txt.text = "error";
}
};
xml.load("/sub/page/dynamic.php");
接下来,我打开了一个cmd提示符“我在Windows上,cd上”,指向包含swf的目录并运行:
flasm -d test_flasm.swf > test_flasm.flm
这将swf分解为文本文件test_flasm.flm。我已经将flasm添加到我的可执行文件路径中,但是您可以使用flasm.exe的完整路径
.flm文件的相关部分如下所示:
setMember
push '/sub/page/dynamic.php', 1, 'xml'
getVariable
push 'load'
callMethod
您的可能会有所不同,但如果您查找url,您会找到它。接下来,将该url更改为:
setMember
push 'test.xml', 1, 'xml'
getVariable
push 'load'
callMethod
然后,我使用以下方法重新组装swf:
flasm -a test_flasm.flm
现在,test_flasm.swf加载test.xml而不是/sub/page/dynamic.php
希望这有帮助。我不确定我是否理解您的问题,但您似乎需要更改传递给load方法的url。您的swf似乎也是Actionscript 2.0 反编译器可以正常工作,但是使用反编译器生成的fla文件对于生成相同的swf很少有用。有时代码是非法的,而且图形几乎总是错误的 我曾经不得不做一些简单的代码更改,比如将一些URL和其他简单的东西更改为swf,因为我们没有源代码,它们丢失了,也没有备份 我用过这个,效果很好,也没有我最初想象的那么难 Flasm不是反编译器,而是反汇编程序。它获取您的swf,解析actionscript字节码,并生成一个带有类似程序集代码的文本文件。您可以编辑该代码并重新组装swf。它不涉及图形和动画,所以这是我需要的,也许可以为你工作 我做了一个小测试,效果很好 我从佛罗里达州的代码开始:
var xml:XML = new XML();
xml.ignoreWhite = true;
xml.onLoad = function(ok:Boolean):Void {
if(ok) {
_debug_txt.text = "ok";
_debug_txt.text = xml;
} else {
_debug_txt.text = "error";
}
};
xml.load("/sub/page/dynamic.php");
接下来,我打开了一个cmd提示符“我在Windows上,cd上”,指向包含swf的目录并运行:
flasm -d test_flasm.swf > test_flasm.flm
这将swf分解为文本文件test_flasm.flm。我已经将flasm添加到我的可执行文件路径中,但是您可以使用flasm.exe的完整路径
.flm文件的相关部分如下所示:
setMember
push '/sub/page/dynamic.php', 1, 'xml'
getVariable
push 'load'
callMethod
您的可能会有所不同,但如果您查找url,您会找到它。接下来,将该url更改为:
setMember
push 'test.xml', 1, 'xml'
getVariable
push 'load'
callMethod
然后,我使用以下方法重新组装swf:
flasm -a test_flasm.flm
现在,test_flasm.swf加载test.xml而不是/sub/page/dynamic.php
希望这有帮助