我有一个swf文件,我反编译了它。我得到fla和文件,我试图运行这些文件,但我得到这些错误
1180: Call to a possibly undefined method li8.
1180: Call to a possibly undefined method li8.
1180: Call to a possibly undefined method li8.
1180: Call to a possibly undefined method si32.
1180: Call to a possibly undefined method li8.
1180: Call to a possibly undefined method li8.
1180: Call to a possibly undefined method li8.
1180: Call to a possibly undefined method li8.
1180: Call to a possibly undefined method si8.
并且这些函数必须在avm2.intrinsics.memory这个包中但不存在我试图更改这个软件包附带的SDK版本AIR 3.5,3.6,3.7和其他一些但不是它们作为这些函数。有什么问题
答案 0 :(得分:1)
检查您是否使用ASC2.0
编译器。
快速内存操作码是ASC2.0
编译器的一部分,不属于AIR SDK
的一部分。根据您使用的IDE,avm2.intrinsics.memory
操作码方法可能会在代码编辑器上显示unresolved error
,但它可以使用ASC2.0
编译器构建。
以下代码使用AIR SDK 27
中的intelliJ IDEA
进行了测试。
package {
import flash.display.Sprite;
import avm2.intrinsics.memory.sf64;
import avm2.intrinsics.memory.lf64;
import flash.system.ApplicationDomain;
import flash.utils.ByteArray;
import flash.utils.Endian;
public class FastMemTest extends Sprite {
public function FastMemTest() {
var ba:ByteArray = new ByteArray();
ba.length = ApplicationDomain.MIN_DOMAIN_MEMORY_LENGTH;
ba.endian = Endian.LITTLE_ENDIAN;
ApplicationDomain.currentDomain.domainMemory = ba;
const addr:int = 0xf0;
const value:int = 1234;
sf64(1234, value);
trace(value.toString(16), ':', lf64(value));
}
}
}
跟踪输出:
"C:\Program Files\JetBrains\IntelliJ IDEA 2017.2.1\jre64\bin\java.exe" "-Dapplication.home=C:\FlexSDK\AIRSDK_Compiler_27.0.0.132" -Dfile.encoding=UTF-8 -Djava.awt.headless=true -Duser.language=en -Duser.region=en -Xmx512m -classpath "C:/FlexSDK/AIRSDK_Compiler_27.0.0.132/lib/legacy/fdb.jar" flex.tools.debugger.cli.DebugCLI
Adobe fdb (Flash Player Debugger) [build development]
Copyright (c) 2004-2007 Adobe, Inc. All rights reserved.
Waiting for Player to connect
"C:\FlexSDK\AIRSDK_Compiler_27.0.0.132\bin\adl.exe" -profile extendedDesktop C:\test\Stage3DTest-app.xml C:\test
Player connected; session starting.
[trace] f0 : 1234