Flash CS5.5-AIR我无法使用writeUTFBytes

时间:2015-07-08 15:32:23

标签: actionscript-3 flash actionscript adobe flash-cs5

我需要使用Flash CS5.5中的AIR编写一些XML 我的代码有效,但我不知道如何编写一些没有flash转换的HTML标签<至 ; &安培; GT; 我想写一个HTML代码。 我怎样才能做到这一点?

这是我正在使用的代码类型,即从Flash CS5.5开始使用AIR

一切正常,除非我没有得到"<"但是;& GT;在输出文件中,对于许多HTML标志,例如>等

    function SaveFile(event:MouseEvent){
var objs:XML = new XML( <objects /> );
var ball1:XML = <ball />.appendChild(input_text.text); 
// In the input i want to write the CDATA and the HTML text dynamically each time
ball1.@xPos = 12; 
ball1.@yPos = 42; 
objs.appendChild( ball1 ); 


var vFile = File.desktopDirectory.resolvePath('file.xml');
var vStream = new FileStream();
vStream.open(vFile, FileMode.WRITE);
vStream.writeUTFBytes(objs);
vStream.close();
}

1 个答案:

答案 0 :(得分:1)

您正在将String传递给appendChild函数,这就是您将结果作为xml文件中的“文本”的原因。为避免这种情况,您只需传递XML对象而不是String

// ...

var ball1:XML = <ball />.appendChild(new XML(input_text.text)); 

// ...

编辑:

要将XML声明添加到XML文件,可以使用XMLDocument,如下所示:

// ...

objs.appendChild(ball1); 

var xml_document:XMLDocument = new XMLDocument(objs.toXMLString());
    xml_document.xmlDecl = '<?xml version="1.0" encoding="utf-8"?>\n';

var file = File.desktopDirectory.resolvePath('file.xml');
var file_stream = new FileStream();
    file_stream.open(file, FileMode.WRITE);
    file_stream.writeUTFBytes(xml_document.toString());
    file_stream.close();

希望可以提供帮助。