我在一个ActionScript项目中使用URLLoader来读取一些XML。然后我处理它,并将其放入文本字段中。一切都很美好。但是,我并不想让XML在我的SWF外部。所以我这样做:Actionscript剥离空白时它不应该
var internalXML:XML = <Content><P>It was in <City>Paris</City> that I first
took a <Activity>walk in nature</Activity>.</P></Content>
也就是说,我把相同的XML,直接在我的ActionScript其分配到一个XML对象实例。然后我运行完全相同的过程。但是这次,任何XML标签内容和纯文本之间的空格都被剥离了。
这样上面的内容就会在文本框中显示出来:“这是因为我第一次在自然界中遇到了麻烦。”
在这两种情况下,我都得到了XML.ignoreWhitespace = false。我也尝试过XML.prettyPrinting = false。没有帮助。
任何人都知道会发生什么?
指教,谢谢卡梅伦。在此期间,我发现了一个更简单的解决方案,我想可以完成同样的事情。我的主类中的处理程序中有XML.ignoreWhitespace = false。我将它移到了课程之外,并将其放在导入语句后面。现在它可以工作。 如果ignoreWhitespace是一个静态属性,为什么它声明在哪里?更一般地说,你怎么知道在编译时做了什么以及在运行时完成了什么? – David 2010-01-24 16:37:29
因为ignoreWhitespace是一个静态属性,所以它不应该在什么地方设置(尽管有时在Flash中有一些奇怪的错误)。也许你认为它的代码没有被执行?另外,我只是在猜测编译时的事情。我实际上不知道内联XML会发生什么(我不完全确定它是否被记录)。作为一般的经验法则,编译时可以确定的事情通常是在那时完成的,因为这样做只需要一次,而不必在运行时完成。你必须阅读文档或尝试找出肯定的东西。 – Cameron 2010-01-29 17:01:35