html和xml中的转义字符在Flash as3中的用法浅析

在as3中使用特殊字符的时候,不小心就会出现错误,要么字符没有被显示,要么显示的不对,本文章就此做一个简单的分析,如有更好的分析,请一定要跟贴。

sample.xml和sample_cdata.xml是本例需要用到的xml文件,请点击查看他们的内容,本例以特殊字符< 和> 为例;文本字符串变量为txt, 显示文本的名称为shwo_txt。

由于html和xml中<和>有特殊含义,不能直接使用,使用这两个字符时,应使用他们的转义序列,也即<和>,故在xml文件中< 和 >会被&lt;和&gt;替代,用法请见sample.xml。

CDATA用于不想被xml解析器解析的文本数据,使用格式为,字符串部分都会被认为是纯粹的字符串,就算包含特殊的字符,也被认为是普通的字符串,用法请见sample_cdata.xml。

xml文件准备好之后,下一步就是使用程序加载xml文件,并根据xml的内容显示在文本框中(show_txt),这里使用URLLoader进 行加载,加载完成后获取字符串txt, 然后根据你所点击的按钮进行相应的显示,一下是演示文件,其中”普通”表示不使用CDATA的xml文件,text表示文本框不对html标签进行支 持,htmlText说明对html标签进行支持(注意:flash只支持部分html标签)。

可以看到,在xml为普通(没有使用CDATA)时,&lt;和&gt; 会首先被xml解析,转义为<和>,当字符串txt传递给show_txt的text属性时,因为不使用html标签功能,所以不会发生错 误,显示结果正确,而当txt传递给show_txt的htmlText属性时,因为使用了html标签功能,所以特殊字符<和>会被认为是 非法字符,而不予显示。

同理,当xml使用了CDATA时,xml在对文本进行解析时,会把&lt;和&gt;认为是单纯的字符而不予理会,当字符串 txt传递给show_txt的text属性时,自然,&lt;和&gt;就会显示出来,而当txt传递给show_txt的 htmlText属性时,因为使用了html标签功能,&lt;和&gt;会被转义为<和>,此时结果显示正确。

所以,要注意html和xml都会对特殊字符进行转义,以避免错误的发生。

时间: 2024-10-28 09:29:15

html和xml中的转义字符在Flash as3中的用法浅析的相关文章

flash as3 中动态加载库类失败解决方法

flash as3 中动态加载库类失败解决方法 这是错误的写法 for (var i:number=1; i<4; i++) { var mc1:mc1 = new mc1(); addchild(mc1); } as3里怎么循环加载库里的mc1 mc2 mc3类 就是下面意思是怎样个的写法 for (var i:number=1; i<4; i++) { var "mc"+i:"mc"+i = new "mc"+i(); addch

Flash AS3 中的反射 — Reflection

谢草莓和 yhc13 提供人肉翻译机支持 什么是反射反射 (Reflection) 是指在程序在运行时 (run-time) 获取类信息的方式. 诸如实现动态创建类实例, 方法等. 在很语言中都有相关的的实现, 如 Java 和 c# 等 反射有什么用在 as3 与 as2 不同, 类实例中任何元素, 如变量 (variable), 访问器 (accessor, 即 getter / setter), 方法 (method) 都是不可被 for..in 遍历的 (不是默认哦, 目前我还没找到办法

FLASH AS3 中使用URLRequest 和URLLoader 与服务器交互

request|服务器|交互 AS3 中使用URLRequest 和URLLoader 与服务器交互 AS3 中使用 URLLoader 与 URLRequest 取代了先前版本 LoadVars 方法. 初学者可能又会迷糊了.在现在帮助系统没有完善的情况下 (Flash 9 没有帮助, Flex Builder 2 的只有英文), 这里写篇简单的教程, 方便大家往 AS3 过渡. 在 AS3 中, 有关于网络操作的内置类全部在 flash.net 里. 下面是本教程要用到的类的清单 : URL

flash AS3中的Loading加载进度条实现代码

比如说我们有一个主Flash叫main.swf,然后有一个Load.swf,只要在Load.swf中写入如下代码即可下载main.swf播放:  代码如下 复制代码 var request:URLRequest = new URLRequest("main.swf"); var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgr

flash as3中换行符无效解决办法

如今从xml中加载进来并读出的字符串中的换行符不起作用 我很郁闷,多次查查不到什么原因 但试出了用<br/>代替n可以解决此问题 最后才找到了原因.原来不知道为什么xml中的n都变成了\n 所以解决的办法有两个: (1)用<br/>代替n (2)把\n换成n:data.text = data.text.replace(/\n/g,"n");//解决n换行符不起作用的问题..

flash as3中MVC使用说明详解

data层的功能: 1.封装与服务器通信的功能,提供call()接口让外部(一部是View)调用完成向服务器发送数据的功能 2.处理和解析服务器返回的数据.比如服务器返回数据后,data里的一个函数被调用,这个函数根据协议实现读取数据包的功能,读完后把数据填充到自己实例变量中 3.提供侦听接口path(协议,回调函数),让外部(一般是View),侦听所关心的协议,一旦服务器返回这个协议,回调函数就会被执行. VIEW的功能: 1.控制UI,响应用户交互 2.调用data.path方法,侦听自己关

HTML及XML语言的转义字符

xml     HTML中的转义字符 HTML中<, >,&等有特殊含义,(前两个字符用于链接签,&用于转义),不能直接使用.使用这三个字符时,应使用它们的转义序列,如下所示: & 或 & & 和 < 或 < < 小于号 > 或 > > 大于号 " " 双引号     空格 版权符 注册符 前者为字符转义序列,后者为数字转义序列.数字转为字符对应的ASCII码值.例如 & lt; font

Flash AS3 相对于AS2 新的特性和改动

本文介绍了ActionScript 3 相对于 ActionScript 2 有哪些新的特性和改动.并在文章的最后一步步的教大家如何利用 Flex Builder 来编译并运行第一个 AS3 程序.语法方面的增强和改动: 引入了 package(包) 和 namespace(命名空间) 两个概念.其中 package 用来管理类定义,防止命名冲突,而 namespace 则用来控制程序属性方法的访问. 新增内置类型 int (32比特整数),uint(非负32比特整数),用来提速整数运算: 新增

Flash AS3.0 爽快使用XML

xml ActionScript 3.0系列教程(3):Document Class特色为我们带来了什么? ActionScript 3.0系列教程(4):爽快使用XML 为什么放弃AS2.0选择AS3.0?如果只允许我说三个理由.那么AS3.0对XML的近乎完美的支持绝对是其中一个. 简单说说AS3.0中对于XML支持的不同吧: .AS2.0对XML的支持勉勉强强,将就着可以用.而AS3.0中对XML的支持是全方位的,极其强大和灵活的. AS2.0对XML的支持不是内建的(build-in),