首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ActionScript AVM2 avm2.intrinsics.memory包缺少函数

ActionScript AVM2 avm2.intrinsics.memory包缺少函数
EN

Stack Overflow用户
提问于 2017-08-28 04:44:30
回答 1查看 454关注 0票数 0

我有一个swf文件,我反编译了它。我得到了fla和as文件,我试图运行这些文件,但是我得到了这些错误

代码语言:javascript
复制
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和其他一些,但不是这些函数。问题出在哪里?

EN

回答 1

Stack Overflow用户

发布于 2017-10-13 14:39:05

检查您是否正在使用ASC2.0编译器。

快速内存操作码是ASC2.0编译器的一部分,而不是AIR SDK的一部分。根据您使用的集成开发环境,avm2.intrinsics.memory操作码方法可能会在代码编辑器中显示unresolved error,但使用ASC2.0编译器可以很好地构建它。

以下代码在intelliJ IDEA中使用AIR SDK 27进行了测试。

代码语言:javascript
复制
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));
  }
}
}

跟踪输出:

代码语言:javascript
复制
"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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45909188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档