Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.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
Php 在AdobeFlashCS4中提取SWF会导致编译器错误_Php_Actionscript 3_Flash_Flash Cs4_Swf Decompiler - Fatal编程技术网

Php 在AdobeFlashCS4中提取SWF会导致编译器错误

Php 在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中再次打开它进行编辑。完成后,我输

我得到了一个SWF来编辑AS代码中的链接。 事实上,SWF使用了一些由PHP代码从数据库中实际检索到的XML

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

希望这有帮助