开发者

Embedding text in AS2, like HEREDOC or CDATA

开发者 https://www.devze.com 2023-02-27 10:16 出处:网络
I\'m loading a text file into a string variable using LoadVars(). For the final version of the code I want to be able to put that text as part of the actionscript code and assign it to the string, ins

I'm loading a text file into a string variable using LoadVars(). For the final version of the code I want to be able to put that text as part of the actionscript code and assign it to the string, instead of loading it from an external file.

Something along the lines of HEREDOC syntax in PHP, or CDAT开发者_如何学编程A in AS3 ( http://dougmccune.com/blog/2007/05/15/multi-line-strings-in-actionscript-3/ )

Quick and dirty solutions I've found is to put the text into a text object in a movieclip and then get the value, but I dont like it

Btw: the text is multiline, and can include single quotes and double quotes.

Thanks!


I think in AS2 the only way seems to do it dirty. In AS3 you can embed resources with the Embed tag, but as far as I know not in AS2.

If it's a final version and it means you don't want to edit the text anymore, you could escape the characters and use \n as a line break.

var str = "\'one\' \"two\"\nthree";
trace(str);

outputs:

'one' "two"
three

Now just copy the text into your favourite text editor and change every ' and " to \' and \", also the line breaks to \n.


Cristian, anemgyenge's solution works when you realize it's a single line. It can be selected and replaced in a simple operation.

Don't edit the doc in the code editor. Edit the doc in a doc editor and create a process that converts it to a long string (say running it through a quick PHP script). Take the converted string and paste it in over the old string. Repeat as necessary.

It's way less than ideal from a long-term management perspective, especially if code maintenance gets handed off without you handing off the parser, but it gets around some of your maintenance issues.


Use a new pair of quotes on each line and add a space as the word delimiter:

var foo = "Example of string " +
"spanning multiple lines " +
"using heredoc syntax."

There is a project which may help that adds partial E4X support to ActionScript 2:

  • as24x

As well as a project which adds E4X support to Haxe, which can compile to a JavaScript target:

  • E4X Macro for Haxe
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号