Actionscript 3 和带有 CDATA 的 XML

Posted

技术标签:

【中文标题】Actionscript 3 和带有 CDATA 的 XML【英文标题】:Actionscript 3 and XML with CDATA 【发布时间】:2018-05-19 04:08:59 【问题描述】:

我正在尝试将我们必须的 AS2 xmas 卡转换为 AS3,但我一直坚持使用 CDATA 显示 XML。基本上 HMTL 标签仍然可以输出。

这是我的 XML

<?xml version="1.0" encoding="UTF-8"?>
<config>
<data>
  <textblock>
     <![CDATA[<h1>Seasons Greetings!</h1><p>from everyone at Honda</p>]]>
  </textblock>
</data>
</config>

CSS

h1 
    font-size:55;
    color:#333333;


p 
    font-size:25;
    color:#333333;

还有我的 AS3

import flash.net.URLLoader; 
import flash.text.StyleSheet;

var myXML:XML = new XML(); 
var XML_URL:String = "config.xml"; 
var myXMLURL:URLRequest = new URLRequest(XML_URL); 
var myLoader:URLLoader = new URLLoader(myXMLURL); 
myLoader.addEventListener(Event.COMPLETE, xmlLoaded); 

function xmlLoaded(event:Event):void 
 
    myXML = XML(myLoader.data); 
    trace("Data loaded."); 
    blocktext.text = myXML.data.textblock;


var textStyleSheet:StyleSheet;
function loadCSS():void

    var loader:URLLoader = new URLLoader(); 
    loader.addEventListener(Event.COMPLETE, onCSSLoadComplete); 
    loader.load(new URLRequest("config.css"));

function onCSSLoadComplete(event:Event):void

    textStyleSheet = new StyleSheet();
    textStyleSheet.parseCSS(event.target.data);
    //loadXML();

它仍然输出 H1 和 P html 标签并且不使用样式。

任何帮助表示赞赏。

【问题讨论】:

【参考方案1】:

我认为你可以开始

blocktext.styleSheet = textStyleSheet;
blocktext.htmlText = myXML.data.textblock.children.toString();

【讨论】:

谢谢。 blocktext.htmlText = myXML.data.textblock.toString(); 似乎适用于 HTML 标签,但不适用于 css。 @snookian 更新了我的帖子。 StyleSheet 不能抽象地工作,您需要为您需要设置样式的 TextField 分配一个。

以上是关于Actionscript 3 和带有 CDATA 的 XML的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Adob​​e Animate CC/ActionScript 3 中创建带有图片的滚动列表

ActionScript 3 带有输出跟踪的对象跟踪

ActionScript 3 带有Zin init的基类模板

谁用过Xstream 用其生成带有cdata标签的xml解析带有cdata标签的xml

ActionScript 3 带有Masked DisplayObject的AS3 bitmapData.draw()

ActionScript 3 带有圆形预加载器微调器的AS3 Image Loader