




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
FLASH加载XML数据分析/thread-2849602-1-1.htmlXml是个好东西(呵呵,替它打下广告,引用XML教程书上的话,每个学习网络的人都要会用它,每个搞创作的人都要精通它。虽然有点夸张,但是也是优点道理的),他的作用和语法我就不在这里阐述了。看到论坛上许多人提问,FLASH如何加载,分页效果是怎么实现的。如果你看了这个帖子,相信就会怎么使用FLASH加载XML了首先你要对XML的语法有一些了解,FLASH加载XML是把XML当作节点来分析。下面是我对XML的简单分析,1.下面我就用一个booklist.xml来做一下详细的分析!booklist.xml 的内容如下: Thinking in Java Bruce Eckel 机械工业 朗文英语词典 - 商务印书馆 数据结构 严蔚敏 清华大学 Database Concepts Oracle Corporation Oracle Corporation 如果我想得到机械工业中的图片地址怎么办呢(即“1.jpg”),如果你对XML有点了解,在理解了上面的图示的原理,这个对你来说就容易了。那么让我们来实验下。在FLASH中输入代码:/初始化对象,设定onLoad时调用自己的函数解析myXML = new XML();myXML.ignoreWhite = true;/下面是自定义的用来解析XML文件myXML.onLoad = function(ok) if (ok) bookTag = myXML.firstChild.firstChild.childNodes2.attributes.src; trace(bookTag); else trace(error); ;myXML.load(booklist.xml);测试一下。是不是有输出了:1.jpg如过你想以这个图片地址导入图片,只要在其中加入_root.loadMovie(bookTag);是否体验到了XML的魅力了?2.能够实现上面的功能也许有的人就想,是不是可以利用这个功能做一个展示某产品的页面,并利用循环来均匀排列这些影片,当然能够拉,我们就来看看这样的效果是怎么实现的(具体的过程见附件,这只是讲了基本的过程和主要的代码)。新建一个FLASH文档。建立一个影片剪辑,如图: 右键选择链接,设置标记符为main;回到主场景,在第一桢输入代码:/代码开始/初始化对象,设定onLoad时调用自己的函数解析myXML = new XML();myXML.ignoreWhite = true;myXML.onLoad = function(ok) if (ok) item = myXML.firstChild.childNodes; for (i=0; iitem.length; i+) name = itemi.firstChild.firstChild.nodeValue; trace(name); author = itemi.childNodes1.firstChild.nodeValue; trace(author); pub = itemi.childNodes2.firstChild.nodeValue; trace(pub); img = itemi.childNodes2.attributes.src; trace(img); _root.attachMovie(main, main+i, i); _rootmain+i._x = 165*i; _rootmain+ = name; _rootmain+i.author = author; _rootmain+i.pub = pub; _rootmain+i.loader.loadMovie(img); else trace(error); ;myXML.load(booklist.xml);/代码结束哈哈,舞台上有了你XML中设置附件:有些很有想法的朋友就不满足了,他们会提出这样的问题,是否能够对我们加载的信息进行分页显示呢?可以的,进行分页显示通常有两种方法(也许有许多种,但是我就掌握了两种,如果有朋友知道其它的方法,还请指教呀,大家相互学习)。第一中是加载进全部信息,设置遮罩来显示一个指定区域的信息,使用按钮或者鼠标直接拖动另一区域到遮罩下显示。代码如下:flash xml动态分页/ copyright by .author by egoldy.2006.1.14/初始化起始位置Stage.scaleMode=noScaleSystem.useCodepage=true;var x = 3;var y = 3;/ 设定图像的水平和竖向间距位置图像的宽为100*75间隔为5var hspace = 105;var vspace = 80;/ 列和行数,以列为主var num_columnas = 3;var num_rows=3;/定义分页变量var pages;/ 初始xmlmyXML = new XML();myXML.ignoreWhite = true;myXML.onLoad = function(success) if (success) /创建一个空影片用于装载所有内容_root.createEmptyMovieClip(mycont,0);/设定遮罩及它的宽高mycont.setMask(mask_mc);mask_mc._width=hspace*num_columnas;mask_mc._height=vspace*num_rows;/ xml结点轮徇for (var i = 0; i 0) for(var j=0;jpages;j+) var pag=_root.attachMovie(page_btn,pag+j,j+100); trace(pag); trace(pages); pag._x = 5+j*30;pag._y = 260;/指定一个id.是为了后面移动holder_mc准备pag.id = j;/按钮文字.text = j+1;pag.onPress = function() /设定按钮状态 setButtons(pages, this.id) /移动mycont,实现翻页 mycont._y=-(this.id*(num_rows*vspace); ;myXML.load(/wsswf/f.ge/imagenes.xml);/设定按钮状态函数function setButtons(tot, q) for (var i = 0; i=tot; i+) var but = thispag+i; if (i != q) but.gotoAndStop(1); but.enabled = 1; else but.gotoAndStop(2); but.enabled = 0; 上面代码我们一次全部加载了信息,并设置按钮,根据按钮传入的值来确定要浏览的区域位置,并将该区域移动到遮罩下进行显示。 使用上面的方法可以实现分页的效果,但是你可能会想,如果我有几百张,甚至上份的信息,如果一次加载进来岂不是要很久,而且也没有什么必要,这样既浪费了资源,也没有这么大了空间让你显示全部的内容,如果看完一个,只要单击下一个或者上一个,就能够观看遍所有的,那不更加好吗?very good,我为有这样的想法的朋友而高兴,这确实是个好想法,那么何不来看看是怎么做出来的呢?这就关系到在FLASH中传递参数进行选择加载进行分页显示了。 下面就告诉大家是第二种分页效果怎么做出来的(当然,实现的方法很多,我这只是其中的一种方法):其实实现也比较简单。原理是这样的:设置一个带参的函数,根据单击的按钮传回的参数来加载选择的那一条或者几条信息。只要在上面该该就行了/初始化对象,设定onLoad时调用自己的函数解析myXML = new XML();myXML.ignoreWhite = true;myXML.onLoad = myParseXML;bookTag = new XML();bookList = new Array();descList = new Array();count = 0;/下面是自定义的用来解析储存书目信息的XML文件的函数function myParseXML() bookTag = myXML.firstChild; bookList = bookTag.childNodes; /读入第一本书的信息 readChild(0);function readChild(num) /读入一个book节点的所有信息 descList = bookListnum.childNodes; /分解book节点中的各子节点 for (i=0; idescList.length; i+) if (descListi.nodeName.toLowerCase() = class) class = descListi.firstChild.nodeValue; if (descListi.nodeName.toLowerCase() = name) name = descListi.firstChild.nodeValue; if (descListi.nodeName.toLowerCase() = author) author = descListi.firstChild.nodeValue; if (descListi.nodeName.toLowerCase() = pub) pub = descListi.firstChild.nodeValue; if (descListi.nodeName.toLowerCase() = pub) img = descListi.attributes.src; trace(img); _root.loader.loadMovie(img); /显示当前纪录的编号 no = num+1;其中readChild(num)就是一个用来接受按钮参数的函数附件:我这只是分析了如何得到XML中的数据以及如何进行分页,即如何选择性地加载XML中的数据,其实FLASH用到的XML也就这么多(当然,XML文件不一定必须是XML格式的,我们也可以存储为其它的格式,也可以使用动态的语言生成XML数据,或者结合数据库进行存储,这些就要求我们掌握除了AS以外的其它技术了),相信能够对朋友有一点帮助,我这只是将FLASH加载XML的原理向大家解析。所以提供给大家的也是一些做的比较粗糙的源文件,没有进行什么美化,如果你是一位美术功底好的人,相信只要掌握了我所教的,一定能够做出很漂亮的作品出来。FLASH没有连接数据库的功能,至少现在,一段时间不会有(AS3也没有吧),如果要存取数据库,需要结合其他动态的语言(如ASP),不过FLASH加载的XML文档不限于静态的XML,也可以是其他语言生成的XML(如使用ASP生成),我就给你一个ASP调用数据库中的数据生成XML的简单例子吧。 引用: 这只是一个很简单的例子,在于说明FLASH加载的XML是不限于只是以.xml为后缀的形式,只要内容是XML格式的文档就可以,同样,如果你想要添加的话,你也可以做个后台,将你说的内容存到数据库,达到这个目的的方式很多,可以使用ASP,PHP,JSP等等,这就与FLASH无关了,就算你使用FLASH,也至多是个收集的界面,想要实现还要靠我提到的ASP等其他的技术,我这教你只是如何使用ASP提取数据库的内容生成FLASH能够使用的XML格式文档,其他存数据到数据库就不在FLASH的讨论范围了,至于您想要知道详细的存取,可以学习ASP等其他的技术。XML后续-FLASH借助ASP存储数据库在浏览别人的帖子的时候,看到很多人问FLASH数据库的,我前面已经说了“FLASH没有连接数据库的功能,至少现在,一段时间不会有(AS3也没有吧),如果要存取数据库,需要结合其他动态的语言(如ASP)”,既然有那么多人问了,说明这个问题困惑了很多人,几年前,我也被这个问题困惑了很久,我在这里就简单地向大家讲解一下,我做了一个文件发布系统,简单不能够再简单,但是我能够说,对初学者是非常实用的,如果弄懂了这个,加上你看了我写的这个帖子,我想你对flash如何加载xml文本并是如何借助动态语言实现数据存储的整个过程就明白了。 希望我的这篇帖子能够对你有一定的帮助,如果你确实认为你从我这学了东西就帮助顶一下贴吧,本人级数太低了,回帖虽然和道德没有关系,但是回帖是对别人劳动的认可,自己发贴了才知道,原来短短的一个贴会花去那么多的时间,所以我看了别人的贴都会回。 好了,下面就进入主题:FLASH没有连接数据库的功能,但是我们常常要使用FLASH来收集一些东西,如浏览者的信息,有的人就想,FLASH的能力太差了吧,这读办不到,呵呵,你错了,这正是FLASH的优点,古语有云:假舟楫者,而绝江河。FLASH也有这样的能力,想想是不是很强!那他是怎么工作的呢?其实原理很简单,就是借助其他的动态文本,FLASH将变量传到其他的页面,其它页面根据FLASH传来的变量实行数据库操作(当然其他操作也可以),然后将变量传回,FLASH就像是统帅,发出命令(传出变量)让手下的人去干事(如ASP),手下干事完了后来报告(传回变量)是否办成功,是不是厉害。呵呵,虽然不是很贴切,但是却将FLASH工作的过程形象化了。下面就来看看FLASH是如何发出命令并接受返回信息的吧。主要的代码: 引用:System.useCodepage = true;onEnterFrame = function () /这些代码只是显示时间 var nowate = new Date(); nyr = now.getFullYear()+-+now.getMonth()+-+now.getDate(); time = now.getHours()+:+now.getMinutes()+:+now.getSeconds(); /trace(nyr+ +time); riqi.text = nyr+ +time;var sendData = new LoadVars();var receiveData = new LoadVars();tijiao.onRelease = function() /发出的命令,使用LoadVars发送变量给其他页面(这里是ASP),LoadVars的用法查看FLASH的帮助 if (biaoti.text != & neirong.text != ) sendData.biaoti = biaoti.text; sendData.neirong = neirong.text; sendData.riqi = riqi.text; trace(sendData); sendData.sendAndLoad(save.asp,receiveData,post);/这里就是命令发送到的页面,可以是其他语言编写的 ;receiveData.onLoad = function() /接受返回的信息. if (this.writing = success) gotoAndStop(2); status.text = 数据保存成功; else trace(保存错误); ;stop();其实这个FLASH只是个页面,用来收集数据,不能够用来操作数据库,如果对做网页比较熟悉的话,那么这个FLASH就像是一个静态的表单,和下面的HTML的作用是一样的,只是FLASH还要接受返回的信息: 引用:使用静态的HTML和FLASH一样的收集作用Html发布页面(arthur制作)Html发布页面(arthur制作)标题:内容:日期:有了发送命令的FLASH页面还不行呀,想想,如果只有一个将军发命令而没有士兵去执行的话,那么你这将军再怎么厉害是不是也是光杆司令,什么事也干不了。所以我们需要一个来执行FLASH命令的页面,前面说过了,有很多选择(ASP CFM JSP PHP .),我对ASP熟悉点就使用它吧。 引用:过程是不是很简单,使用FLASH来操作数据库就完成了。怎么样,FLASH这种借助其它方法是不是很方便,这样就不局限我们了,不管你知道那种语言来操作数据库,都可以轻松使用FLASH来操作数据库了。开始是写FLASH如何操作XML的贴,后来又写了除了加载动态的XML文件,我们还可以使用动态语言生成XML格式的文档,这里又写了如何使用FLASH页面收集浏览者的信息(发布的文章)并借助其他语言(其实也不是语言,ASP,JSP,PHP都不能够称得上是一门完全的语言,这里就简称下)存储到数据库。并贴了简单实用的代码,将FLASH存储数据到数据库以及加载数据库中的过程向大家说明了,我自己认为很清楚明白。整个过程就像我们学习的面向对象的语言,FLASH实现了封装,即传出变量和传回变量,其他过程与FLASH无关,如果你是个FLASH的工作者,只需要知道如何传变量出去执行命令以及如何传回自己想要的变量数据就OK了。 终于写完了,不知不觉就过去好几小时了,发现一个帖子写来有点像是教程了,还是一句话:FLASH没有连接数据库的功能,如果要存取数据库,需要结合其他动态的语言! 最后,如果你觉得我写的对你有一定的帮助,或者使你的困惑解除的话,就支持下,顶一下贴,你也可以添加你的观点,使其他的人能够真正看了能够受益,一个好贴除了写的人的尽心外,还离不看大家的支持,我想我是很尽力了,下面就看你的支持了,如果还有什么不明白的地方,你可以提出来,我知道的话一定热心解答,也可以大家讨论。希望自己的尽心能够打造一篇优秀的XML教程贴! 下面的是文件,主要代码已经贴在上面了,如果要求不高,即可以直接使用了。注意:需要在服务器上测试,如网上的网络空间或者机子上装有IIS或其它服务器请教楼主我们经常看见网页里面有一些FLASH幻灯片效果 幻灯片都是动态加载文件的 我从网上下载了一些下来 不过都是XML文件调用图片文件夹里面的图片 不是动态的 能不能实现动态调用例如:我这里总共有4个文件 :(1)img_home_slideshow文件夹是存放了6张照片 (2)slideshow.swf是播放器 (3)images.xml文件里面的内容是PRODUCT DEVELOPMENT TAYLORMADE & ADIDAS GOLF BAGS slide_golf.jpgPRINT COLLATERAL SAN DIEGO PIA PRINT WEEK slide_pia.jpgHELMET DESIGN HJC, FULMER HELMETS, SHIFT MX & SCORPION HELMETS slide_helmets.jpg
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 潜水员培训考核试卷及答案
- 深静脉血栓诊断治疗史
- 绿色工艺路径设计-洞察及研究
- 2026届高三一轮复习练习试题(标准版)数学第二章2.9对数函数
- 河北邯郸2025-2026学年语文高三上期末调研试题
- 2025呼伦贝尔农垦那吉屯农牧场招聘考试练习及完整答案详解
- 零售业销售数据统计分析模板
- 逻辑与集合相关基础知识讲义
- 民宿旅游项目场地租用及特色服务合同
- 建筑项目部施工现场安全教育培训服务协议
- 生物标本课程讲解
- 专八备考单词讲解
- 《古代诗歌四首》理解性默写与训练-2023学年七年级语文上册知识梳理与能力训练
- 2025年非高危安全管理员和企业负责人习题有(含答案)
- 2025年度乡村医生能力提升培训考试试题及答案
- 2025法拍房屋代理竞买合同范本:专业中介服务
- 医院2025年年度窗口服务优化计划
- 营销部综合事务管理办法
- 机加工车间员工技能培训
- 部编人教版三年级上册道德与法治全册教案
- 医院见习人员管理制度
评论
0/150
提交评论