在 AS3 + flixel 中嵌入带有变量的文件



我最近拿起了flixel(我以前编程过,但有一段时间没有了),我遇到了一个问题。我正在尝试创建地图,最终将有多个地图可用。

我目前有一个.txt文件,其中包含最终进入数组的信息。然后我用loadmap从一个数组到另一个映射。这可能是完成此任务的简单方法,也许有更好的方法(我还没有探索flixel的所有可能性,如果有任何意见,请继续告诉我),但它目前效果很好。

正如我之前所说,我正在尝试使用多张地图来做到这一点。我可以为每个.txt文件使用 [Embed(source = "")] 来做到这一点,但这最终可能会很烦人。所以,这是我的问题:有没有可能的方法 基于变量嵌入文件

我的地图类如下所示:

public function Map(MapSet:String, TileSet:String) 
        {
            super(MapSet, TileSet);
            //more stuff
        }

现在我试过了:

[Embed(scource="data/MapSets/" + MapSet + ".txt",  mimeType = "application/octet-stream")]private var loadedMap:Class

然后我使用:

map = new Map("Map1x1", "ForestTiles");
add(map);

是否有可能以不同的方式做到这一点?或者也许我做错了什么?欢迎所有意见。

知道代码在使用时的作用是有益的。

嵌入是一个元标记。它告诉编译器将某个文件包含在.swf文件中。这意味着这不会在运行时发生。

当这个嵌入代码被"执行"时,你的变量甚至还不存在。这就是您的代码无法正常工作的原因。

尽管不起作用,但您的解决方案仍然有效:如果您觉得生成代码很乏味,请编写一个为您执行此操作的程序。创建/使用一个程序,该程序查找给定目录中的所有有效文件并创建所有嵌入标记。在编译器之前运行此程序。

要嵌入文本文件并用作字符串,请尝试以下操作:

// create source var TextSource
[Embed(source="textFile.txt",mimeType="application/octet-stream")]
private var TextSource:Class;
var myByteArray:ByteArray = new TextSource();
var myString:String = myByteArray.readUTFBytes(myByteArray.length);
// then use for your function
map = new Map("Map1x1", myString);

相关内容

  • 没有找到相关文章

最新更新