Actionscript 3中的多行字符串字面量

8
4个回答

27

这个网站上有一个例子:Actionscript 3中的多行字符串

由于actionscript基于javascript,所以可以使用cdata标签。

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

Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
Maecenas dui lacus, sollicitudin nec laoreet a, vestibulum a 
odio. Sed et lorem mauris, non porttitor ligula. Aliquam 
convallis dolor rutrum justo semper nec aliquet orci....

]]> ).toString();

6

哇,非常聪明...实际上,我认为这在大多数浏览器中甚至不会在JavaScript中起作用...

我只是想修改一下对实际情况的解释:AS3允许通过xml字面量进行内联xml声明(这应该是E4X的一部分)...你所做的是声明一个XML字面量,然后将其转换为String...同样,你可以写:

private var myString:String = ( [
"Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
"Maecenas dui lacus, sollicitudin nec laoreet a, vestibulum a",
"odio. Sed et lorem mauris, non porttitor ligula. Aliquam",
"convallis dolor rutrum justo semper nec aliquet orci....",
] ).join("\n");

这将声明一个Array文字并将其转换为String...

因此,最终你会命令flash播放器创建一个XML对象,其中包含一个文本节点,该节点包含你的文本,并使用该对象的String表示形式...

(小提示: 在代码中声明字符串内容是不好的做法...应该在运行时从外部加载)

问候

back2dos


在你的代码中声明字符串内容是不好的做法...应该在运行时从外部加载。为什么呢?如果我有一些静态字符串,我不明白为什么不能在我的代码中声明它。 - Tom
@Tom:重点在于“内容”……在应用程序中通常需要使用字符串键和标识符……但是出于许多原因,内容和功能始终应该分开……如果您不了解它们,我建议您就此提问,因为这并不是本主题的重点…… :) - back2dos

1

这对我非常有效:

private var myString:String = "Lorem ipsum dolor sit amet, consectetur adipiscing elit."+"\n"+ "Maecenas dui lacus, sollicitudin nec laoreet a, vestibulum a";

1

你也可以这样做

var quote:String = "This was my very first experience with a video game. \
        Despite only being 4 or 5 years old when I first saw this game, \
        the comedic characters and unforgettable soundtrack still brings me incredible joy."

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接