一般接触
flash传参比较多的方法是用loadVars类 ,这个方法传输简单 但是不规范 对于后台接受比较苦恼 易读性差
所以编了一个xmlCreator类来实现此功能
类中没有用到appendChild/createElement/createTextNode等方法,因为当时试验的时候没有得到能用于cdata传值的方法,后来经此xml写成的cdata方法输出后也转化成了nodeValue的形式,也就是<!cdata[[]]>形式消失了,而且里面的字符都会经过特殊处理转义,没有cdata的作用.....
xmlCreator 类代码复制内容到剪贴板
代码:
class com_zszen.xml.xmlCreator {
private var xml:XML;
private var nodeAry:Array;
private var str:String;
function xmlCreator() {
nodeAry = new Array();
nodeAry[0] = {name:"", value:"<?xml version='1.0' encoding='gb2312' ?>", level:0};
}
function add(value:String, nodeElement:Object, level:Number, cdata:String) {
var node:String = "<"+value;
for (var name in nodeElement) {
node += " "+name+"='"+nodeElement[name]+"'";
}
//nodeAry[father].level += 1;
nodeAry.push({name:"</"+value+">", value:node+">", level:level});
if (cdata != null) {
nodeAry.push({name:"", value:"<![CDATA["+cdata+"]]>", level:level+1});
}
}
private function rebuild() {
str = recursion(nodeAry);
}
private function recursion(ary, level) {
if (ary.length<1) {
return "";
}
var str = "";
var max = 10000;
if (level == null) {
level = 0;
}
for (var i = level; i<ary.length; i++) {
if (ary[i].level>=max) {
max = ary[i].level;
} else {
max = -1;
if (ary[i].level<ary[i+1].level) {
str += ary[i].value+recursion(ary, i+1)+ary[i].name;
} else if (ary[i].level == ary[i+1].level) {
str += ary[i].value+ary[i].name+recursion(ary, i+1);
} else if (ary[i].level>ary[i+1].level) {
str += ary[i].value+ary[i].name;
return str;
} else {
str += ary[i].value+recursion(ary, i+1)+ary[i].name;
}
}
}
return str;
}
function get value() {
rebuild();
return xml=new XML(str);
}
function toString() {
rebuild();
return (new XML(str)).toString();
}
}使用方法add(节点名,节点内的变量,节点层级,节点的子内容[就是cdata内容])
复制内容到剪贴板
代码:
import com_zszen.xml.xmlCreator;
var xml = new xmlCreator();
xml.add("a", {name:123}, 0);
xml.add("b", {name:123}, 1);
xml.add("c", {name:123}, 2, "asdfasdf");
trace(xml)生成结果复制内容到剪贴板
代码:
<?xml version='1.0' encoding='gb2312' ?><a name="123"><b name="123"><c name="123">asdfasdf</c></b></a>使用说明复制内容到剪贴板
代码:
请放入fla同目录的com_zszen/xml文件夹,没有请自行建立