AS3还可以通过CDATA标签声明多行字符串

在腾讯微博上发现这个,立马在博客做个记录。在AS3中,声明多行字符串(或叫做原样输出),可以这样做(注意:没有双引号):

private var myString:String = <![CDATA[第一行
第二行
第三行]]>;

为什么叫原样输出?因为我发现,字符串在 CDATA 标签里是什么样的,输出时就是什么样的。像 html 的 pre 标签一样。有换行就换行,每行前面有空格的,输出时就有空格。

我的理解:这其实就是 XML 特有的 CDATA 标签。在 CDATA 标签里,无论是什么字符,都不会经过转换,都是原样输出。类似的技巧还是有的,例如在 XML 里插入变量,在编译后会把变量值插入到对应位置:

private var myName:String = “Y.Boy“;
private var myXML:XML = <user><name>{MyName}</name><user>;
// 输出:<user><name>Y.Boy</name><user>

2011.3.11更新:

在这里(http://ticore.blogspot.com/2011/03/as3-multiline-cdata-string.html,需要翻墙)看到一些需要补充的内容:

另外假如 XML 设置为保留空白字符,这样的写法会出错:

XML.ignoreWhitespace = false;
var str:String = <![CDATA[
多行
字串]]>;
// TypeError: Error #1088: 文件中根元素之后的标签必须使用正确格式。

解決的方式很简单,用一个根标签包起来就行了(这相当于是使用一个XML对象包起来,然后默认调用 toString() 方法,把返回值赋给变量 str ):

XML.ignoreWhitespace = false;
var str:String = <><![CDATA[
多行
字串]]></>;

而且還能用來包覆多個 CDATA 區塊呢:

var str:String = <>
<![CDATA[字串1]]>
<![CDATA[字串2]]>
</>;
trace(str);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值