Flash & Ajax 操作 XML 实例:无刷新分页
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-08
其实标题只是一个噱头罢了,只是想谈一下,JavaScript与Actionscript是如何操作XML的。 希望能帮助一些只用Javascript或只懂Actionscript的朋友,了解两者的相同与不同之处。 Flash与后台连接有许多种,Actionscript调用XML()算是比较简单的一种了, 而Javascript调用xmlHttp,便形成了现在很流行的Ajax了。 现在就用一个网上常出现的分页效果来对Flash和Ajax做个入门学习。 效果预览 源文件下截 source.rar 实际运用中一般是通过后台脚本生成XML文件,再对其产生的数据进行操作 由于篇幅关系在本文中将用1.xml2.xml3.xml代替。后台脚本不做说明 首先了解一个XML的结构: <data> <movieid="1"type="爱情">幸福终点站</movie> <movieid="2"type="恐怖">绝命终结站</movie> <movieid="3"type="喜剧">恐怖电影</movie> … …. </data>从简单的Flash开始吧 functionsetxml(page){ pageXml=newXML();//申明XML对象 pageXml.ignoreWhite=true;//允许空白 pageXml.load(page+".xml?rid="+Math.random());//读取XML文件 pageXml.onLoad=function(success) { if(success) { parseXml(pageXml);//如果读取成功,分析XML文件 } } } functionparseXml(pageXml){ xmlroot=ageXml.firstChild;//定义XML根目录 for(i=0;i<xmlroot.childNodes.length;i++) { attachMovie("tr","tr_"+i,i);//生成行 this["tr_"+i]._x=13; this["tr_"+i]._y=25*i+33; this["tr_"+i].no=xmlroot.childNodes[i].attributes.id;//取得一条记录的ID this["tr_"+i].name=xmlroot.childNodes[i].firstChild;//片名 this["tr_"+i].type=xmlroot.childNodes[i].attributes.type;//类型 page=pageXml.firstChild.attributes.page;//获取当前页 } } if(!page)//初始页码为第一页page=1; setxml(page);//初始第一页内容 presetxmlbtn.onRelease=function() { setxml(page*1-1);//向前翻页,读取内容 } nextbtn.onRelease=function() { setxml(page*1+1);//向后翻页,读取内容 }接下来是Ajax了 关于Ajax入门学习可以有翻一下我以前的日志,我推荐过两篇不错的文章 varxmlHttp /* 第一部分是有关xmlHttp的申明,因为IE和其它一些浏览生成xmlHttp的对象有一点两样,所以申明时比较麻烦 其它主要功能相当于Flash方式中的"newXML()"当然还包函其它功能 */ functionGetXmlHttpObject(handler) { varobjXmlHttp=null; if(navigator.userAgent.indexOf("MSIE")>=0) { varstrName="Msxml2.XMLHTTP"; if(navigator.appVersion.indexOf("MSIE5.5")>=0)//既使是IE都有两种申明方式 { strName="Microsoft.XMLHTTP"; } try { objXmlHttp=newActiveXObject(strName); objXmlHttp.onreadystatechange=handler; returnobjXmlHttp; } catch(e) { alert("Error.ScriptingforActiveXmightbedisabled"); return; } } else { objXmlHttp=newXMLHttpRequest();//Firefox、Opera等都是用这种 objXmlHttp.onload=handler; objXmlHttp.onerror=handler; returnobjXmlHttp; } } //首先要被调用的函数,可看作上面Flash中的setxml()函数, functionshowpage(no) { document.getElementById("loadstatus").innerHTML="Lading…"; varurl=no+".xml?rid="+Math.random(); //stateChanged_showplist是下面的函数名,注意的是不要加括号 xmlHttp=GetXmlHttpObject(stateChanged_showplist); //传递方式是GET,也可以选择POST方式,有时传递变量是中文要记得设置文件头 xmlHttp.open("GET",url,true); xmlHttp.send(null); } //分析XML函数 functionstateChanged_showplist() { if(xmlHttp.rea |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: Tween类以及深度9876下一篇: 探究性教程-ease值对形状被间动画的影响
关于Flash & Ajax 操作 XML 实例:无刷新分页的所有评论