【问题标题】:Storing a large string in flash在闪存中存储大字符串
【发布时间】:2011-11-22 06:19:23
【问题描述】:

我的游戏以大字符串形式存储关卡。不是很长,长度大约是我在 1080p 屏幕上的桌面的一半。 Flash可以很好地处理它,但是当我做类似的事情时

var levels:Array = ["Large String
gets broken up because of the len
gth"];

Flash IDE 告诉我,我需要在换行之前结束字符串文字。我不能,因为它太长了。 (对于IDE,不是flash环境)

我应该如何存储字符串?

【问题讨论】:

  • 您可以在项目中包含任何 txt 文件并阅读它。 stackoverflow.com/questions/888023/…
  • @AutoCoder:谢谢,但这是一款将托管在我无法控制的服务器上的游戏。我也不喜欢仅仅为了提供相同的字符串而购买托管空间..

标签: flash actionscript-3


【解决方案1】:

您还可以像嵌入位图一样将文本文件嵌入到您的应用中。

[Embed(source='test.txt', mimeType='application/octet-stream')]
private var TextData:Class;

...

var thing:String = new TextData();
trace(thing);

注意:'text/plain' 的 mimeType 不能很好地与编译器一起使用,因此是八位字节流。

【讨论】:

  • 谢谢,这就是我要找的。这适用于 flash IDE 还是仅适用于 flashdevelop? (在我的手机上,无法尝试)
  • 这应该可以在 Adob​​e CS Flash Pro 中使用。虽然我相信,从记忆中,它会给你一个关于需要使用 Flex SDK 进行嵌入或类似的消息,但随后会正常工作。
【解决方案2】:

类似这样的:

private var myString:String = ( <![CDATA[

Large String
gets broken up because of the len
gth

]]> ).toString();

【讨论】:

  • 谢谢!如果没有更优雅的解决方案,我会接受你(是否可以在里面编译一个文本文件?)
  • “在里面编译一个文本文件”是什么意思?
  • 如果你的意思是嵌入一个文本文件,那么它就是。看我的回答。
【解决方案3】:

要么像 AutoCoder 在他的评论中说的那样做

您可以在项目中包含任何 txt 文件并阅读它 - Reading the text file line by line and push to an array in AS3

或者,

var levels:Array = ["Large String" + 
    "gets broken up because of the len" +
    "gth", 

    "Another Large String" + 
    "gets broken up because of the len" +
    "gth"
];

这会给你一个像这样的数组:

["Large String gets broken up because of the length", "Another Large String gets broken up because of the length"]

或者,将整个字符串放在一行上(没有任何换行符)。现在看起来好像您正在插入换行符以使字符串更具可读性。

【讨论】:

  • 不,我的太长了。我没有换行,这是flash ide的极限
【解决方案4】:

也许您应该使用外部“.txt”文件并通过 URLLoader 加载它?

它总是让游戏更有活力。

【讨论】:

    猜你喜欢
    • 2019-03-16
    • 1970-01-01
    • 2014-11-18
    • 2022-01-21
    • 2018-07-18
    • 1970-01-01
    • 2017-06-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多