flash读取xml数据
程序代码
<?xml version = "1.0" encoding = "gb2312"?>
<list>
<title>coco168</title>
<url>http://www.baidu.com</url>
<other>xiaohd</other>
</list>
简单说一下XML文档格式的书写规范:
第一行:是一个XML文档的描述信息.其中定义了该XML文档的一些基本属性,包括:版本信息(version),使用的字符编码(encoding)
第二行:(虽然在FLASH中我们用不到节点的任何属性,但是合式的XML文档必须要求一个根节点)
在XML文档中,这是一个根节点.XML规定所有标签必须有闭合.所以,在最后一行使用对应的标签来闭合.同样,单行的XML节点也需要闭合,例如:其中"/"符号就表示单行的节点闭合."title","url","other"是节点的属性,写法就是:属性名="属性值" 这样的名/值对.至于节点名和属性名都是可以自定义的,也就是说可以任意命名.但是还是建议要尽量规范
""节点是""的子节点,相应的""叫做""的父节点
在这个XML文档中有3个子节点,我们数据就存储在这3个子节点的属性中,分别有:title url other
我们要做的最终目的就是在FLASH中获取这些节点的属性值
FLASH 代码:
程序代码
System.useCodepage = true; //中文
lemon_xml = new XML(); //声明一个XML对象
lemon_xml.ignoreWhite = true; //忽略XML中的空白
lemon_xml.load("lemon.xml"); //读取xml的路径
lemon_xml.onLoad = function(success) //开始加载xml文件
{
if(success) //如果成功的话执行以下操作
{
UpdateInfo = lemon_xml.firstChild; //读取进来的XML文件的firstChild是<list>
Publish(UpdateInfo);
delete lemon_xml;
sb1.setScrollTarget(tf1); //使文本刷新后的scrollbar仍然可用
sb2.setScrollTarget(tf2);
sb3.setScrollTarget(tf3);
}
else {
lemon1 = "Error loading XML...";
}
}
function Publish(xml_doc)
{
content = xml_doc.childNodes; //这个content有点像一个数组用来存储<list>的子结点们
lemon1=content[0].firstChild; //建立一个动态文本,变量名为lemon1
lemon2=content[1].firstChild;
lemon3=content[2].firstChild;
}
其实在flash中用xml变量做为按钮的链接没想象中那么麻烦,只要在以上代码中把变量做好,就可以了,“lemon2=content[1].firstChild; ”中,content[1].firstChild; 读取的就是http://www.baidu...,所以,只要在按钮上写上以下代码就可以了
on(release){
getURL(lemon2,"_blank");