flash与xml的结合可以使内容与代码相分离
把内容放到xml文档中,只需要修改下xml的内容而无需再次发布swf文件
很多的flash网站 还有flash 菜单导航都是离不开xml的
flash中使用xml的简单技术和基本的操作:
flash中xml数据都要通过XML对象来代表
常用的操作:
1:创建xml对象
var xmlData:XML=new XML()
2:忽略空格
xmlData.ignoreWhite=true;
3:开始加载外部xml文件
xmlData.Load("test.xml")
4:加载完成后的操作
xmlData.onLoad=function(success:Boolean){
//判断
if(success){
trace("加载完毕");
}
else{
trace("加载失败");
}
}
====================================
<?xml version="1.0" encoding="utf-8"?>
如果使用了中文的编码 encoding="gb2312"
city.xml
<?xml version="1.0" encoding="gb2312"?>
<root>
<city name="北京" code="010" pnum="10W"/>
<city name="上海" code="020" pnum="15W"/>
<city name="深圳" code="030" pnum="20W"/>
</root>
flash调用XML数据
新建fla文件,命名为useCity.fla
按F9 编写如下代码(as 2.0)
System.useCodepage = true;
//如果xml文档中是中文编码 encoding="gb2312"
var xmlData:XML = new XML();
xmlData.ignoreWhite = true;
//按xml的结构显示 每级之间含有回车
xmlData.onLoad = function(success:Boolean) {
if (success) {
trace(this);
} else {
trace("load failed");
}
};
xmlData.load("city.xml");如果xml文档中使用的是中文编码 encoding="gb2312"
<?xml version="1.0" encoding="gb2312"?>
this关键字
引用对象或影片剪辑实例。执行脚本时,this 引用包含该脚本的影片剪辑实例。
在调用方法时,this 包含对包含所调用方法的对象的引用。
在附加到按钮的 on() 事件处理函数中,this 引用包含该按钮的时间轴。
在附加到影片剪辑的 onClipEvent() 事件处理函数中,this 引用该影片剪辑自身的时间轴。
因为 this 是在包含它的脚本的上下文中计算的,所以您不能在脚本中使用 this 来引用在类文件中定义的变量。必须使用new XML()构造函数来创建一个xml对象
才能调用xml类各种方法.在flash中,xml文档用
XML类来表示。层次结构文档的每个元素都是由
XMLNode对象来表示。
--------------------------------------------------------
完整的一个点击按钮实现 检索code=“010”
System.useCodepage = true;
//如果xml文档中是中文编码 encoding="gb2312"
var xmlData:XML = new XML();
xmlData.ignoreWhite = true;
//按xml的结构显示 每级之间含有回车
var myList:Array = new Array();
//为了可以在flash中其他位置可以使用xml的数据,把数组存在onLoad外面
var stadus:Boolean;
xmlData.load("city.xml");
xmlData.onLoad = function(success:Boolean) {
if (success) {
trace(this);//this指引用的對象
trace(this.childNodes[0].childNodes[0].attributes.name);
myList = this.childNodes[0].childNodes;//首節點的那些節點
//childNodes本身是Array對象
trace(myList[0].attributes.name);
} else {
trace("load failed");
}
};
function getName(p1:String):Void {
if (p1 == myList[0].attributes.code) {
trace("getName is Run")
cityName = myList[0].attributes.name;
cityPNum = myList[0].attributes.pNum;
}
}
a_btn.onRelease = function() {
getName("010")
trace(cityName);
trace(cityPNum);
};



浙公网安备 33010602011771号