在 AS3 + flixel 中嵌入带有变量的文件
Embedding a file with a variable in AS3 + flixel
我最近接触了 flixel(我以前编程过,但有一段时间没编程了),但遇到了一个问题。我正在尝试创建地图,最终会有多个地图可用。
我目前有一个 .txt 文件,其中包含最终进入数组的信息。然后我使用 loadmap
从数组到映射。这可能是完成这项任务的一种简单方法,也许它们是更好的方法(我还没有探索过 flixel 的所有可能性,如果有任何意见,请继续告诉我)但它目前效果很好。
正如我之前所说,我正在尝试使用多张地图来做到这一点。我可以通过对每个 .txt 文件使用 [Embed(source = "")]
来做到这一点,但这最终可能会很烦人。所以,这是我的问题:是否有可能基于变量嵌入文件?
我的地图 class 看起来像这样:
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 文件中。
这意味着这不会在运行时发生。
当此嵌入代码为"executed"时,您的变量甚至还不存在。
这就是您的代码无法运行的原因。
尽管不起作用,但您的解决方案仍然有效:
如果您发现生成代码很乏味,请编写一个程序来为您完成这项工作。 Create/use 一个在给定目录中找到所有有效文件并创建所有嵌入标签的程序。 运行 这个程序在编译之前。
要嵌入文本文件并用作字符串,试试这个:
// 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);
我最近接触了 flixel(我以前编程过,但有一段时间没编程了),但遇到了一个问题。我正在尝试创建地图,最终会有多个地图可用。
我目前有一个 .txt 文件,其中包含最终进入数组的信息。然后我使用 loadmap
从数组到映射。这可能是完成这项任务的一种简单方法,也许它们是更好的方法(我还没有探索过 flixel 的所有可能性,如果有任何意见,请继续告诉我)但它目前效果很好。
正如我之前所说,我正在尝试使用多张地图来做到这一点。我可以通过对每个 .txt 文件使用 [Embed(source = "")]
来做到这一点,但这最终可能会很烦人。所以,这是我的问题:是否有可能基于变量嵌入文件?
我的地图 class 看起来像这样:
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 文件中。 这意味着这不会在运行时发生。
当此嵌入代码为"executed"时,您的变量甚至还不存在。 这就是您的代码无法运行的原因。
尽管不起作用,但您的解决方案仍然有效: 如果您发现生成代码很乏味,请编写一个程序来为您完成这项工作。 Create/use 一个在给定目录中找到所有有效文件并创建所有嵌入标签的程序。 运行 这个程序在编译之前。
要嵌入文本文件并用作字符串,试试这个:
// 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);