如何在js项目中加载haxe中的txt文件?

时间:2014-12-04 15:42:14

标签: haxe flashdevelop

我在FlashDevelop中启动了一个haxe js项目,我需要加载一个本地文件,这可能吗?该怎么做?

2 个答案:

答案 0 :(得分:1)

简单的答案是使用"资源"。您为hxml添加路径和标识符:

-resource hello_message.txt@welcome

您可以在代码中使用它:

var welcome = haxe.Resource.getString("welcome");

请注意,该操作在编译时执行,因此没有运行时开销。它基本上等同于将文件内容嵌入带引号的字符串中。

复杂的答案是使用宏。使用它们,您可以加载,解析,处理并执行您可能需要的所有操作。通常,您可以看到宏来加载配置文件(比如JSON或YAML)并将其用作应用程序的一部分(再次在编译时而不是在运行时)。

答案 1 :(得分:0)

你可以使用XMLHttpRequest获取文件,只要你将它们保存在公共场所(如果你把它放在网上)并且脚本可以访问它。

以下是从资产/ test.txt位置抓取文本文件的快速示例

这是我通常在我制作的JS游戏中做的事情,我发现它比仅使用-resource嵌入它们更灵活。

如果它不是您正在寻找的,那么Franco的回答应该会让您看到。

package ;

import js.html.XMLHttpRequest;
import js.html.Event;

class Start {
    static function main() {
        var request = new XMLHttpRequest();

        // using the GET method, get the file at this location, asynchronously 
        request.open("GET", "assets/test.txt", true);

        // when loaded, get the response and trace it out
        request.onload = function(e:Event){
            trace(request.response);
        };

        // if there's an error, handle it
        request.onerror = function(e:Event) {
            trace("error :(");
        };

        // send the actual request to the server
        request.send();
    }
}