问题标签 [avm2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3669 浏览

javascript - AVM2 和 ABC(Adobe 的 ActionScript 字节码格式)规范许可。我可以使用它吗?

谷歌在这方面让我失望了。

假设我有一些 ECMA 脚本,我使用 Open Source Flex SDK 中的编译器将其编译为 ABC 字节码文件。

我是否在使用条款范围内(我似乎找不到)使用 adobe 的 AVM2 规范为这个文件创建一个新的解释器?

我能做到的最好的是维基百科中的一句话,说闪存规范“无限制”可用。不过,我不是在制作 Flash 播放器,而且 AVM2 规范与 SWF 规范是分开的。

有人知道我的意图是否合法吗?

0 投票
3 回答
883 浏览

apache-flex - 在 AVM2 中子类化私有(支持)类

我正在为 Flex/AS3 开发一个动态模拟框架,并且在私有/支持类型(即在类文件中的包 {} 之外声明的类型)遇到问题。

在我的 ABC“文件”中,我使用 PROTECTED_NAMESPACE 类标志和 PRIVATE_NS 多名称声明实例。我还尝试赋予它与它所继承的类相同的命名空间(例如 PRIVATE_NS("ContainerClass.as$123"))。

不管我做什么,在loadBytes之后我总是得到以下错误:

VerifyError:错误 #1014:找不到类 ContainerClass.as$123::PrivateClass。

我已经尝试将生成的字节码加载到与私有类相同的 ApplicationDomain 中(默认情况下我使用子域)。我什至尝试在加载之前注册一个类别名(尽管这有点牵强)。

我忘记了什么还是仅仅是 AVM 的限制?

请注意,我完全知道这在 ActionScript 3.0 中是非法的,我正在寻找这在 AVM 中是否真的可行。

编辑:对于迄今为止对这项工作感兴趣的人,该项目是asmock并且在 sourceforge 上。

0 投票
1 回答
2472 浏览

apache-flex - 泛型(向量)如何在 AVM 中工作?

Flash Player 10 中添加了对泛型的支持(目前只有Vector.<*>,并且被 Adob​​e 称为“后缀类型参数”),但唯一的AVM2 文档没有描述如何访问这些对象。

具体来说,我注意到一个新的操作码 (0x53) 和一个新的多名称类型 (0x1D) 似乎相关,但它们的用法没有记录。

注意:这个问题是用已知的答案创建的,因为在这里比在我的博客或 Adob​​e Bug DB 上更容易找到。

0 投票
2 回答
1535 浏览

actionscript-3 - 有哪些工具可用于编辑/创建 AVM2 字节码?

我想直接为 Flash 10 AVM2 生成一些字节码,即没有 AS3。生成 SWF 文件的汇编程序将是理想的。

这存在吗?如果没有,从汇编程序→ abc → SWF 获得的最简单方法是什么?

0 投票
3 回答
1066 浏览

apache-flex - 是否存在允许“在没有 ActionScript 的情况下编写 flex”、“Java 到 AVM2 编译器”或“使用 Java 编写 Flex”的内容?

有许多针对 Sun 的 JVM 的动态语言(Groovy、Scala、Jython、Jruby 等),我确信也有许多针对 Adob​​e 的 AVM。但我惊讶地发现只有 Haxe 做了类似的事情。本站相关问题

我认为 eclipse e4 SWT 项目不会直接编译为 ABC(ActionScript 字节码),而是首先将 Java 转换为 AS3,然后由 Flex 编译器完成其余的工作。

是不是还没有人写过一个简单的 Java / Python / Scala AVM2 编译器,可以用来替代专有的 Adob​​e Flash Builder(以前称为 Flex Builder)?

我不介意向 Adob​​e 支付优质产品,但在 Eclipse 中编写 Java 比半成品的 Adob​​e 插件套件要快得多,也更方便。除了Haxe真的没有其他努力了吗?

0 投票
2 回答
1050 浏览

actionscript - AVM2 中的 $cinit 和 $init 是什么?

更新:在 AVM2 上找到了一些不错的信息。我没能花太多时间在它上面,但它肯定涵盖了 $init 和 $cinit(以及 $iinit 和许多其他东西)。如果在其他人提出问题之前我能很好地掌握答案,我会发布对这个问题的回应。


今天陷入了关于这个问题的一长串链接跳跃和谷歌搜索,但仍然不太了解 $cinit 和 $init 是什么。

我很在意,因为我今天了解到 $cinit 和 $init 是被解释的(如果我理解正确的话,由 FP 解释),而其他一切都是编译的。

认为$init 是指给定类的构造函数,而 $cinit 是指创建该类的对象的构造函数。……类似的东西……

谁能让我明白这一点,或者至少为我指出一个有用的方向?

谢谢。

0 投票
1 回答
869 浏览

linux - Linux 服务器上的闪存

我是 Flash 迷,想知道 Flash 在 Linux 服务器上运行良好。Linux 环境中 Flash 的性能如何?

我对服务器和linux一无所知,但应该有答案。我试图保持客观。
谢谢,

要求:
• 首先证明没有媒体服务器的 Flash '只是 Flash 运行时 AVM2'
• 知道它是如何执行的
• 此外,知道当 Flash 与服务器脚本、dll 等通信时会发生什么。

用途:
我想运行动画,让 Flash 进行通信
以及发送和接收消息。


评论: '来自 penguin.swf '

-浏览器
似乎在歌剧中工作,但崩溃 konqueror(可能是我的配置)

-64Bit
我们什么时候可以期待原生 64 位版本的 Flash Player?当涉及到对 64 位技术的本机支持时,专有闭源应用程序的速度之慢几乎令人难以置信。

-FullScreen
我不明白这个全屏加速问题。在 youtube.com 上,新播放器几乎无法观看全屏视频,但旧播放器播放正常。为什么不能强制加速???

-CPU
刚刚从以前的稳定更新到这个新的稳定,我看到一些可怕的 cpu 使用率。在具有最新稳定 nvidia 驱动程序的 7600GT 上,它仅使用 40% 的 cpu 来显示视频,并且在全屏时跃升高达 80%(在双核 x2 @ 2.2ghz 上)。如果我在播放视频时关闭硬件加速,我会得到一个 cpu 最高为 100%,另一个最高为 80%。我测试的视频只​​是在 youtube 上。我在 x86_64 gentoo 上使用 32 位 firefox (2.0.0.11)。希望你能调查一下。

关于 Flash 不是 64 位、占用 CPU 和全屏窒息的评论似乎并不是 Linux 独有的

0 投票
1 回答
279 浏览

flash - actionscript 中的动作与 avm 指令

我的问题是,什么是动作,什么是 avm 指令。我一直在阅读这两个文件:

http://www.adobe.com/devnet/swf/pdf/swf_file_format_spec_v10.pdf

http://www.adobe.com/devnet/actionscript/articles/avm2overview.pdf

但我无法理解它的概念。请有更了解它的人解释一下吗?

0 投票
2 回答
236 浏览

apache-flex - AVM1(ActionScript 1/2)的拖放在 AVM2(ActionScript 3/Flex)中不起作用

我有一个在 ActionScript 2 中开发的应用程序,它具有拖放活动。效果很好。我用以下来测试下降

当我将此 SWF 放入我的 Flex 应用程序 SWFLoader 容器时会出现问题。在这种情况下,拖动根本不起作用。

有什么想法吗?

0 投票
3 回答
2480 浏览

flash - 如何在 AVM2 字节码中找到方法?

我一直在玩 ABC 字节码,并希望有人能为我解决一些困惑。我有一个简单的 Flash 文件,它在舞台上放置一个剪辑,并有一个小脚本来更新它在每一帧上的位置。代码看起来像:

编译为:

我的问题是“getlex”操作是如何工作的(我用###1 标记了它)。它传递了一个引用类的“moveit”方法的多名称。不幸的是,方法信息中的“名称”字段似乎永远不会被编译器使用。所有方法都以空字符串作为其名称(上面显示为###2 处的未命名函数)。

flash 播放器如何将多名称链接到未命名方法?AVM2 规范中似乎没有这方面的规定。

我知道这是可能的,因为像 sothink 这样的商业反编译器设法确定方法名称。我只是不确定他们是如何做到的,或者代码如何工作。