经典论坛's Archiver

arthur721 发表于 2008-4-24 19:06

FLASH加载XML数据分析

Xml是个好东西(呵呵,替它打下广告,引用XML教程书上的话,每个学习网络的人都要会用它,每个搞创作的人都要精通它。虽然有点夸张,但是也是优点道理的),他的作用和语法我就不在这里阐述了。
看到论坛上许多人提问,FLASH如何加载,分页效果是怎么实现的。如果你看了这个帖子,相信就会怎么使用FLASH加载XML了
首先你要对XML的语法有一些了解,FLASH加载XML是把XML当作节点来分析。
下面是我对XML的简单分析,
[img]http://images22.51.com/6000/arthur727/c6890d018639905e893482cac81e2218.jpg[/img]
1.下面我就用一个booklist.xml来做一下详细的分析!
booklist.xml 的内容如下:
<?xml version="1.0"?>
<books>
        <book>
                <name>Thinking in Java</name>
                <author>Bruce Eckel</author>
                <pub src="1.jpg">机械工业</pub>
        </book>
        <book>
                <name>朗文英语词典</name>
                <author>--</author>
                <pub src="1.jpg">商务印书馆</pub>
        </book>
        <book>
                <name>数据结构</name>
                <author>严蔚敏</author>
                <pub src="1.jpg">清华大学</pub>
        </book>
        <book>
                <name>Database Concepts</name>
                <author>Oracle Corporation</author>
                <pub src="1.jpg">Oracle Corporation</pub>
        </book>
</books>

如果我想得到<pub src="1.jpg">机械工业</pub>中的图片地址怎么办呢(即“1.jpg”),如果你对XML有点了解,在理解了上面的图示的原理,这个对你来说就容易了。那么让我们来实验下。
在FLASH中输入代码:
//初始化对象,设定onLoad时调用自己的函数解析
myXML = new XML();
myXML.ignoreWhite = true;
//下面是自定义的用来解析XML文件
myXML.onLoad = function(ok) {
        if (ok) {
                bookTag = myXML.firstChild.firstChild.childNodes[2].attributes.src;                trace(bookTag);
        } else {
                trace("error");
        }
};
myXML.load("booklist.xml");
测试一下。是不是有输出了:1.jpg
如过你想以这个图片地址导入图片,只要在其中加入_root.loadMovie(bookTag);
是否体验到了XML的魅力了?
[attach]86114[/attach]


2.能够实现上面的功能也许有的人就想,是不是可以利用这个功能做一个展示某产品的页面,并利用循环来均匀排列这些影片,当然能够拉,我们就来看看这样的效果是怎么实现的(具体的过程见附件,这只是讲了基本的过程和主要的代码)。
新建一个FLASH文档。
建立一个影片剪辑,如图: 右键选择链接,设置标记符为main;
回到主场景,在第一桢输入代码:
//代码开始
//初始化对象,设定onLoad时调用自己的函数解析
myXML = new XML();
myXML.ignoreWhite = true;
myXML.onLoad = function(ok) {
        if (ok) {
                item = myXML.firstChild.childNodes;
                for (i=0; i<item.length; i++) {
                        name = item[i].firstChild.firstChild.nodeValue;
                        trace(name);
                        author = item[i].childNodes[1].firstChild.nodeValue;
                        trace(author);
                        pub = item[i].childNodes[2].firstChild.nodeValue;
                        trace(pub);
                        img = item[i].childNodes[2].attributes.src;
                        trace(img);
                        _root.attachMovie("main", "main"+i, i);
                        _root["main"+i]._x = 165*i;
                        _root["main"+i].name = name;
                        _root["main"+i].author = author;
                        _root["main"+i].pub = pub;
                        _root["main"+i].loader.loadMovie(img);
                }
        } else {
                trace("error");
        }
};
myXML.load("booklist.xml");//代码结束
哈哈,舞台上有了你XML中设置
附件:[attach]86115[/attach]


有些很有想法的朋友就不满足了,他们会提出这样的问题,是否能够对我们加载的信息进行分页显示呢?
可以的,进行分页显示通常有两种方法(也许有许多种,但是我就掌握了两种,如果有朋友知道其它的方法,还请指教呀,大家相互学习)。
第一中是加载进全部信息,设置遮罩来显示一个指定区域的信息,使用按钮或者鼠标直接拖动另一区域到遮罩下显示。
代码如下:
flash xml动态分页
// copyright by webstudio.com.cn.author by egoldy.2006.1.14
//初始化起始位置.
Stage.scaleMode="noScale"
System.useCodepage=true;
var x = 3;
var y = 3;
// 设定图像的水平和竖向间距位置.图像的宽为100*75.间隔为5
var hspace = 105;
var vspace = 80;
// 列和行数,以列为主.
var num_columnas = 3;
var num_rows=3;
//定义分页变量
var pages;
// 初始xml
myXML = 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 < this.firstChild.childNodes.length; i++) {
//计算出页数多少
pages=Math.ceil(i/(num_columnas*num_rows));
trace(pages);
//xml节点付值
var thumb = this.firstChild.childNodes[i].attributes.id;
var holder_mc = mycont.createEmptyMovieClip("holder_mc" + i, i + 100);
var item = holder_mc.createEmptyMovieClip("butx" + i, i + 100);
item.loadMovie(thumb);
// 初始化holder_mc的位置
holder_mc._x = x;
holder_mc._y = y;
// 可以分配变量给holder_mc,如果有的话
holder_mc.url = this.firstChild.childNodes[i].attributes.url;

holder_mc.onRelease = function() {
        getURL(this.url);
};
// holder_mc的x方向排列
x += hspace;
// 定义临时列数.
var columna;
columna += 1;
// 控制列数,如果临时列数与我们初定义的相同,每排完3个后向左移(hspace*num_columnas),
//y方向直接向下增加即可.
if (columna == num_columnas) {
        columna = 0;
        x -= (hspace * num_columnas);
        y += vspace;
}
//显示页号
if(pages>0){
        for(var j=0;j<pages;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;
//按钮文字
pag.info.text = j+1;
pag.onPress = function() {
        //设定按钮状态
        setButtons(pages, this.id)
        //移动mycont,实现翻页.
        mycont._y=-(this.id*(num_rows*vspace));
}
        }
}

}
}
};
myXML.load("http://www.webstudio.com.cn/wsswf/f...ge/imagenes.xml");
//设定按钮状态函数
function setButtons(tot, q) {
        for (var i = 0; i<=tot; i++) {
                var but = this["pag"+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 = bookList[num].childNodes;
        //分解book节点中的各子节点
        for (i=0; i<descList.length; i++) {
                if (descList[i].nodeName.toLowerCase() == "class") {
                        class = descList[i].firstChild.nodeValue;
                }
                if (descList[i].nodeName.toLowerCase() == "name") {
                        name = descList[i].firstChild.nodeValue;
                }
                if (descList[i].nodeName.toLowerCase() == "author") {
                        author = descList[i].firstChild.nodeValue;
                }
                if (descList[i].nodeName.toLowerCase() == "pub") {
                        pub = descList[i].firstChild.nodeValue;
                }
                if (descList[i].nodeName.toLowerCase() == "pub") {
                        img = descList[i].attributes.src;
                        trace(img);
                        _root.loader.loadMovie(img);
                }
        }
        //显示当前纪录的编号
        no = num+1;
}
其中readChild(num)就是一个用来接受按钮参数的函数
附件:[attach]86116[/attach]

我这只是分析了如何得到XML中的数据以及如何进行分页,即如何选择性地加载XML中的数据,其实FLASH用到的XML也就这么多(当然,XML文件不一定必须是XML格式的,我们也可以存储为其它的格式,也可以使用动态的语言生成XML数据,或者结合数据库进行存储,这些就要求我们掌握除了AS以外的其它技术了),相信能够对朋友有一点帮助,我这只是将FLASH加载XML的原理向大家解析。所以提供给大家的也是一些做的比较粗糙的源文件,没有进行什么美化,如果你是一位美术功底好的人,相信只要掌握了我所教的,一定能够做出很漂亮的作品出来。

lin516 发表于 2008-5-31 16:54

XML确实很好用

zhuerhongyan 发表于 2008-6-9 17:53

:) 哈哈.....
不错啊...........
能不能做成动态的啊?
就是那种后台可以添加新闻公司简介什么的了!!!!

arthur721 发表于 2008-6-10 22:55

当然可以,
[b]FLASH没有连接数据库的功能,至少现在,一段时间不会有(AS3也没有吧),如果要存取数据库,需要结合其他动态的语言(如ASP),[/b]
不过FLASH加载的XML文档不限于静态的XML,也可以是其他语言生成的XML(如使用ASP生成),
我就给你一个ASP调用数据库中的数据生成XML的简单例子吧。

[quote]
<?xml version="1.0" encoding="gb2312"?>
<%
set conn=server.createobject("adodb.connection")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("news.mdb")
set rs=Conn.Execute("select * from news")
%>
<root>
<%
do while not rs.eof
%>
<新闻>
        <标题><%=rs("title")%></标题>
        <内容><%=rs("content")%></内容>
        <发布日期><%=rs("ptime")%></发布日期>
</新闻>
<%
rs.movenext
loop
%>
</root>
[/quote]
这只是一个很简单的例子,在于说明FLASH加载的XML是不限于只是以[.xml]为后缀的形式,只要内容是XML格式的文档就可以,
同样,如果你想要添加的话,你也可以做个后台,将你说的内容存到数据库,达到这个目的的方式很多,可以使用ASP,PHP,JSP等等,
这就与FLASH无关了,就算你使用FLASH,也至多是个收集的界面,想要实现还要靠我提到的ASP等其他的技术,
我这教你只是如何使用ASP提取数据库的内容生成FLASH能够使用的XML格式文档,其他存数据到数据库就不在FLASH的讨论范围了,
至于您想要知道详细的存取,可以学习ASP等其他的技术。

[[i] 本帖最后由 arthur721 于 2008-6-10 23:00 编辑 [/i]]

arthur721 发表于 2008-6-11 10:08

谢谢km268了

谢谢km268了

xiaobaizhu 发表于 2008-6-11 11:25

都是高手哦,哭,偶是菜鸟,在努力学习中,,

都是高手哦,哭,偶是菜鸟,在努力学习中,,..希望各位高手多多照顾下..

arthur721 发表于 2008-6-11 20:33

XML后续-FLASH借助ASP存储数据库

在浏览别人的帖子的时候,看到很多人问FLASH数据库的,我前面已经说了“FLASH没有连接数据库的功能,至少现在,一段时间不会有(AS3也没有吧),如果要存取数据库,需要结合其他动态的语言(如ASP)”,既然有那么多人问了,说明这个问题困惑了很多人,几年前,我也被这个问题困惑了很久,我在这里就简单地向大家讲解一下,我做了一个文件发布系统,简单不能够再简单,但是我能够说,对初学者是非常实用的,如果弄懂了这个,加上你看了我写的这个帖子,我想你对flash如何加载xml文本并是如何借助动态语言实现数据存储的整个过程就明白了。
     希望我的这篇帖子能够对你有一定的帮助,如果你确实认为你从我这学了东西就帮助顶一下贴吧,本人级数太低了,回帖虽然和道德没有关系,但是回帖是对别人劳动的认可,自己发贴了才知道,原来短短的一个贴会花去那么多的时间,所以我看了别人的贴都会回。
     好了,下面就进入主题:
FLASH没有连接数据库的功能,但是我们常常要使用FLASH来收集一些东西,如浏览者的信息,有的人就想,FLASH的能力太差了吧,这读办不到,呵呵,你错了,这正是FLASH的优点,古语有云:假舟楫者,而绝江河。FLASH也有这样的能力,想想是不是很强!那他是怎么工作的呢?其实原理很简单,就是借助其他的动态文本,FLASH将变量传到其他的页面,其它页面根据FLASH传来的变量实行数据库操作(当然其他操作也可以),然后将变量传回,FLASH就像是统帅,发出命令(传出变量)让手下的人去干事(如ASP),手下干事完了后来报告(传回变量)是否办成功,是不是厉害。呵呵,虽然不是很贴切,但是却将FLASH工作的过程形象化了。
下面就来看看FLASH是如何发出命令并接受返回信息的吧。
主要的代码:
[quote]System.useCodepage = true;
onEnterFrame = function () {//这些代码只是显示时间
        var now:Date = 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();[/quote]
其实这个FLASH只是个页面,用来收集数据,不能够用来操作数据库,如果对做网页比较熟悉的话,那么这个FLASH就像是一个静态的表单,和下面的HTML的作用是一样的,只是FLASH还要接受返回的信息:
[quote]使用静态的HTML和FLASH一样的收集作用
<html>
<head>
<title>Html发布页面(arthur制作)</title>
<script language="JavaScript"><!--
function check(){//alert(document.clock.biaoti.value);
//alert(document.clock.neirong.value);
if(document.clock.biaoti.value!=""&&document.clock.neirong.value!="")
{return true;}else{
return false;}
}
var enabled = 0;   
function TOfunc() {      
        TO = window.setTimeout( "TOfunc()", 1000 );      
        var today = new Date();
              var year = today.getYear() + 00;
          var month = today.getMonth()+1;
          var date = today.getDate();
          var day = today.getDay();
          var hour = today.getHours();
          var minute = today.getMinutes();
          var second = today.getSeconds();
        document.clock.riqi.value = year+"-"+month+"-"+date+" "+hour+":"+minute+":"+second;}
        TOfunc();
--></script>
</head>
<center>
<body bgcolor="#CCCCCC">
<B>Html发布页面(arthur制作)</b>
<hr noshade="noshade" size="3" />
<form name="clock" method="post" action="save.asp">
  标题:
  <input type="text" name="biaoti" />
  <br />
  内容:<br />
  <textarea name="neirong" cols="30" rows="15"></textarea>
  <br />
  <input type="text" name="riqi" value=""/>
  日期:<br />
  <input type="submit" onClick="check()" value="提交" />
</form>
<hr noshade="noshade" size="3" />
</center>
</body>
</html>
[/quote]

   有了发送命令的FLASH页面还不行呀,想想,如果只有一个将军发命令而没有士兵去执行的话,那么你这将军再怎么厉害是不是也是光杆司令,什么事也干不了。所以我们需要一个来执行FLASH命令的页面,前面说过了,有很多选择(ASP CFM JSP PHP ...),我对ASP熟悉点就使用它吧。
[quote]
<% biaoti = Request("biaoti")
   neirong = Request("neirong")
   riqi =Request("riqi")
'看到了没有?这三个都是FLASH传来的[命令]哦,也就是FLASH收集的内容呀
   set conn=server.createobject("adodb.connection")   
'建一个connection对象
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("news.mdb")
'ASP连接数据库
set rs=Server.CreateObject("ADODB.Recordset")
'建一个Recordset对象
sql="select * from news"
rs.open sql,conn,1,3
'打开数据库表
rs.addnew
'呵呵,ASP执行FLASH的命令,这就是往表中加入FLASH收集的数据
rs("title")=biaoti
rs("content")=neirong
rs("ptime")=riqi
rs.update
   Response.Write "writing=success"
'这句要传回FLASH,也就是完成事情回去报告
   conn.Close
%>[/quote]

过程是不是很简单,使用FLASH来操作数据库就完成了。
怎么样,FLASH这种借助其它方法是不是很方便,这样就不局限我们了,不管你知道那种语言来操作数据库,都可以轻松使用FLASH来操作数据库了。


开始是写FLASH如何操作XML的贴,后来又写了除了加载动态的XML文件,我们还可以使用动态语言生成XML格式的文档,这里又写了如何使用FLASH页面收集浏览者的信息(发布的文章)并借助其他语言(其实也不是语言,ASP,JSP,PHP都不能够称得上是一门完全的语言,这里就简称下)存储到数据库。并贴了简单实用的代码,将FLASH存储数据到数据库以及加载数据库中的过程向大家说明了,我自己认为很清楚明白。整个过程就像我们学习的面向对象的语言,FLASH实现了封装,即传出变量和传回变量,其他过程与FLASH无关,如果你是个FLASH的工作者,只需要知道如何传变量出去执行命令以及如何传回自己想要的变量数据就OK了。
      终于写完了,不知不觉就过去好几小时了,发现一个帖子写来有点像是教程了,还是一句话:FLASH没有连接数据库的功能,如果要存取数据库,需要结合其他动态的语言!
     最后,如果你觉得我写的对你有一定的帮助,或者使你的困惑解除的话,就支持下,顶一下贴,你也可以添加你的观点,使其他的人能够真正看了能够受益,一个好贴除了写的人的尽心外,还离不看大家的支持,我想我是很尽力了,下面就看你的支持了,如果还有什么不明白的地方,你可以提出来,我知道的话一定热心解答,也可以大家讨论。
希望自己的尽心能够打造一篇优秀的XML教程贴!
     下面的是文件,主要代码已经贴在上面了,如果要求不高,即可以直接使用了。
  注意:需要在服务器上测试,如网上的网络空间或者机子上装有IIS或其它服务器

[[i] 本帖最后由 arthur721 于 2008-6-13 13:20 编辑 [/i]]

helilong88 发表于 2008-6-11 20:39

真是好贴
支持一下
受益非浅
哈哈,才写我前面一分种,看来我真的很走运呀

[[i] 本帖最后由 helilong88 于 2008-6-11 20:42 编辑 [/i]]

needi 发表于 2008-6-12 13:44

好帖子。。。一定要顶!!!!!!

songshengkonggu 发表于 2008-6-12 18:17

感觉挺详细的.只可惜, 我还没到那地步, 所以还看不懂.-_!! 先收藏了. 某天接触时再看呵呵

arthur721 发表于 2008-6-16 11:13

还是继续吧
我买的书中的源代码
是关于分页的
不错
发过来给大家分享分享,作为我教程的练习吧

SUNXINZHE 发表于 2008-6-16 15:46

回复 arthur721 在 11# 的帖子

分页
两行代码的问题

helilong88 发表于 2008-6-17 12:57

楼上的好吊呀!
:eek:

aimnxuexi 发表于 2008-6-19 10:31

谢谢 楼主的 辛苦 劳动 支持下 帮助很大:)

thedue 发表于 2008-6-19 11:09

楼主真的不错

讲的很细,以前的讲的很含糊,这个很简单,但才是核心的东西,谢谢。

wuxiuqi 发表于 2008-6-19 12:07

请教楼主

我们经常看见网页里面有一些FLASH幻灯片效果 幻灯片都是动态加载文件的 我从网上下载了一些下来 不过都是XML文件调用图片文件夹里面的图片 不是动态的 能不能实现动态调用
例如:我这里总共有4个文件 :
(1)img_home_slideshow文件夹是存放了6张照片   
(2)slideshow.swf是播放器   
(3)images.xml文件里面的内容是
<?xml version="1.0"?>
<mySlideShow>
<myImage>
<myTitle>PRODUCT DEVELOPMENT </myTitle>
<mysubhead>TAYLORMADE & ADIDAS GOLF BAGS </mysubhead>
<myDescription><![CDATA[ NEEDS TO BE WRITTEN ]]></myDescription>
<myMedia>slide_golf.jpg</myMedia>
</myImage>
<myImage>
<myTitle>PRINT COLLATERAL </myTitle>
<mysubhead>SAN DIEGO PIA PRINT WEEK </mysubhead>
<myDescription><![CDATA[ NEEDS TO BE WRITTEN ]]></myDescription>
<myMedia>slide_pia.jpg</myMedia>
</myImage>
<myImage>
<myTitle>HELMET DESIGN </myTitle>
<mysubhead>HJC, FULMER HELMETS, SHIFT MX & SCORPION HELMETS </mysubhead>
<myDescription><![CDATA[ NEEDS TO BE WRITTEN ]]></myDescription>
<myMedia>slide_helmets.jpg</myMedia>
</myImage>
<myImage>
<myTitle>PRINT ADS </myTitle>
<mysubhead>NATE ADAMS FULL PAGE SPREAD </mysubhead>
<myDescription><![CDATA[ NEEDS TO BE WRITTEN ]]></myDescription>
<myMedia>slide_nateadams.jpg</myMedia>
</myImage>
<myImage>
<myTitle>SOUPGRAPHIX SHOP NOW OPEN </myTitle>
<mysubhead>"SOUP OF DEATH" TWO COLOR SCREEN PRINTED POSTER </mysubhead>
<myDescription><![CDATA[ NEEDS TO BE WRITTEN ]]></myDescription>
<myMedia>slide_soup_shop.jpg</myMedia>
</myImage>
<myImage>
<myTitle>PRINT COLLATERAL </myTitle>
<mysubhead>MCRD BOOTCAMP CHALLENGE </mysubhead>
<myDescription><![CDATA[ NEEDS TO BE WRITTEN ]]></myDescription>
<myMedia>slide_mcrd.jpg</myMedia>
</myImage>
</mySlideShow>
(4)还有一个数据库  我想实现动态调用数据库里面的图片 而不是调用img_home_slideshow文件夹里面的图片 就像很多网站那样的FLASH幻灯片效果
请楼主帮忙  谢谢

arthur721 发表于 2008-6-23 20:50

回复 wuxiuqi 在 16# 的帖子

楼上的好:
你说想要实现动态调用数据库里面的图片,
其实楼上想要使用的方法我前面已经很详细的讲解了,并有例子提供下栽,
其实可以使用ASP来读取数据库中的图片地址,然后以XML的格式输出,
其实这输出又有两种方法(我是说ASP,其他的我想也是一样的)
第一种是直接输出XML格式的动态文本,就想我前面讲解的,虽然文件是ASP为后缀的,你可以查看,其实已经是XML格式的数据了;
第二种方法是使用asp的文件系统对象(FileSystemObject )直接输出以.XML为后缀的xml文档;
FileSystemObject 的应用大致为
   [quote]
Set fs = CreateObject("Scripting.FileSystemObject")          '创建FileSystemObject对象
Set a = fs.CreateTextFile("c:\testfile.XML", True)           '新建XML文本
a.WriteLine("<root><img1 src='1.jpg' name='pic1'></root>")   '输出XML格式数据
a.Close                                                      '关闭文档
[/quote]
     关于 FileSystemObject的具体使用,可以参考有关书籍!
然后就可以使用FLASH加载XML文档(与是否是XML后缀无关,只要是XML格式的文档就行了);
这样我们就可以使用动态的网页语言来操作数据形成XML,而不需要自己编辑修改XML文档,只要将数据增加到数据库就行了。

[[i] 本帖最后由 arthur721 于 2008-6-23 20:56 编辑 [/i]]

helilong88 发表于 2008-6-23 22:07

真的不错

huangyuki 发表于 2008-7-2 08:49

感觉自己从中学到很多,那只能说俺是个菜鸟哦 呵呵
感谢楼主分享的心,再次致敬

yanxiangyu 发表于 2008-7-2 15:14

顶一个,第一:因为我是楼主老乡.
      第二:楼主说的非常适合我这个入门者,开篇的那个XML解析图就做的很不错!看了就对下面的调用很明白了.

[[i] 本帖最后由 yanxiangyu 于 2008-7-2 15:23 编辑 [/i]]

amazonite 发表于 2008-7-8 17:30

谢谢楼主介绍的如此详细

arthur721 发表于 2008-7-9 12:44

[quote]原帖由 [i]amazonite[/i] 于 2008-7-8 17:30 发表 [url=http://bbs.blueidea.com/redirect.php?goto=findpost&pid=4097798&ptid=2849602][img]http://bbs.blueidea.com/images/common/back.gif[/img][/url]
谢谢楼主介绍的如此详细 [/quote]
呵呵,因为论坛有很多的朋友很迷惑,所谓授人以鱼,不如授人以渔
简单点他们能够更好地理解,其实后台说难就难,说简单就简单,
只要明白了其中的原理,如果其它你也懂的话,就能够大显身手了。

zbgl 发表于 2008-7-18 12:29

楼主大人 为什么网上那么多人介绍的都是as2.0的啊 我是从3.0开始学的啊 麻烦你用3.0写一个好不好啊 以后大家都会3.0了

arthur721 发表于 2008-7-18 20:20

不好意思呀
我也是业余的爱好者
对AS2比较熟练一些,
对AS3不是很了解,买了一本ACTIONSCRIPT3殿堂之路,只看了一遍,没有时间去研究。再说AS3和AS2确实有很大的出入,自己不精,新手也就不好意思现丑了
不过我经常到一个不错的论坛,建议您有问题到那里讨论
AS3天地会 [url=http://bbs.actionscript3.cn/]http://bbs.actionscript3.cn/[/url]

leonley 发表于 2008-7-18 23:56

经典教程 多看多练

漠塬 发表于 2008-7-20 06:18

哇,真不错,正需要这样的好东东
楼主真是洪篇“巨”献啊
感谢无私奉献的人们,谢谢啦:)

cranne 发表于 2008-7-21 11:25

*** 作者被禁止或删除 内容自动屏蔽 ***

leeken 发表于 2008-7-22 03:02

受益匪浅!以前看过不少教程,就数楼主这个教程最直观浅易,特别是那个图片,令我对XML的理解有了直观的认识。

arthur721 发表于 2008-7-22 10:45

曾经也是个菜鸟,我也知道初学者最需要的教程是浅显意懂,学会了这方面的知识,才能够更加的深入,这篇教程我写得很用心,如果能够对大家有所帮助的话,就没有违背我的初衷,也很谢谢 这个论坛 ,让我不断成长,也希望能够尽我能地帮助初学者,使他们迈出学习的地一步!

wbcun 发表于 2008-7-22 14:23

谢谢呀!

hairen520 发表于 2008-8-7 14:00

hao

顶 ,哈哈

hairen520 发表于 2008-8-7 14:39

请教一下,

我想要一页有三个图及说明,上面有两个下一页 上一页的按扭,,并显示页数 怎设置函数啊,谢谢各位高手帮帮了

ab2070 发表于 2008-8-7 16:10

这个真够详细的,要早点看到的话我少走好多弯路

arthur721 发表于 2008-8-8 09:36

[quote]原帖由 [i]hairen520[/i] 于 2008-8-7 14:39 发表 [url=http://bbs.blueidea.com/redirect.php?goto=findpost&pid=4150789&ptid=2849602][img]http://bbs.blueidea.com/images/common/back.gif[/img][/url]
我想要一页有三个图及说明,上面有两个下一页 上一页的按扭,,并显示页数 怎设置函数啊,谢谢各位高手帮帮了 [/quote]
你仔细看看我的分页的源代码
只要修改一点点就那个实现的

hill 发表于 2008-8-8 11:55

正需要这个:cool:

helilong88 发表于 2008-8-11 08:35

Very good
:)

mgtw 发表于 2008-8-14 10:18

留个记号慢慢学`

页: [1]



Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.