javascript - 在 Actionscript3 和 Javascript 中使用代码

标签 javascript flash actionscript-3

这是一个有趣的架构查询。我有一段代码需要在服务器(在 Node.js 下)和客户端(在使用 Actionscript 3 编写的 Flash 10 应用程序中)运行。该代码主要是相当复杂的对象操作,它不进行任何 API 调用,并且在两种情况下都可以正常工作。

到目前为止,该项目只是一个演示,因此我很乐意将代码复制并粘贴到这两个地方。但继续推进这一点可能会很有趣。

那么你会怎么做呢?

  • 我认为没有简单的方法可以让 Flash SDK(必须在没有 IDE 的情况下构建)来读取 .js 文件并执行一些有用的操作。

  • 我唯一的想法是我可以编写一个代码生成器来获取 .js 文件并将其放入 ActionScript 包装器中。

有没有我错过的明显方法?


为了抢占一个明显的答案,我了解像 Haxe 这样的跨平台语言。

最佳答案

一种可能的方法是在包装器 Actionscript 代码中使用 include。只是一个快速且非常简单的测试:

package {
    import flash.display.Sprite;
    import flash.text.TextField;

    public class Main extends Sprite {


        private var _alertTxt:TextField;

        include "some.js"

        public function Main() {
            _alertTxt = new TextField();
            _alertTxt.multiline = true;
            _alertTxt.height = 400;
            _alertTxt.width = 400;
            addChild(_alertTxt);
            run();
        }

        public function alert(msg) {
            _alertTxt.text += msg + "\n";
        }
    }
}

一些.js

function run() {
    alert("run");
    var obj = {
        a : 'hello',
        b : 4.5,
        c : false
    };
    loop(obj);
}

function loop(obj) {
    for (var field in obj) {
        alert(obj[field]);
    }    
}

从命令行编译(您可能需要添加其他选项):

mxmlc -strict=false Main.as

如果不将 strict 设置为 false,则由于缺少类型声明而无法编译。

关于javascript - 在 Actionscript3 和 Javascript 中使用代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2705037/

相关文章:

android - 录音机播放器 Rails 移动友好

javascript - 检测第三方在线广告中的音频

flash - 如何在 Flash 中的 Google Maps API 中按街道名称缩放到某个地点?

flash - 类类型的 AS3 测试

javascript - 添加所选类的相对 URL

javascript - 如何从 json 对象键中转义冒号

c# - Kendo UI 上传不返回 onSuccess

ios - 在iOS上获取软键盘以显示在Pure AS3移动项目中(flex 4.5)

ios - AIR SDK : performance of SWF compiled into iOS native app

javascript - AJAX 将 Span 字符串替换为外部日期字符串