5D艺术网首页
商城
|
资讯
|
作品
|
博客
|
教程
|
论坛
登录
注册
加为好友
发短消息
来自:bj
性别:先生
最后登录:2018-10-12
http://yitu.5d.cn/
首页
|
新闻
|
话题
|
博客
|
相册
|
艺术作品
|
社交关系
|
留言板
|
社交圈
2005/09/01 | flash asp调用数据库方法5
类别(flash As)
|
评论
(1)
|
阅读(346)
|
发表于 17:18
第5卷 FlashMX数据库间接操作之数据整理
原创: THOR (转载者请保留“作者:THOR”等字样)
联系: QQ 488915,Email coolthor@163.com
声明: 对Actionscript和ASP不感兴趣者以及认为FLASH只能做动画片者,请Get OUT!
留言: 呵呵,本人初来乍到,希望大家多多支持,要是写了文章能加专家分就好了:)
--------------------------------------------------------------------------------------------------
经过我们几天的讨论,现在大家如果已经看完前4卷的话,应该已经可以轻松的搞定文本文件和ASP等文件与FLASH的数据传递方法了,今天我们来讨论怎样对对一定规模的数据进行有效的整理和安排。
在数据的整理我主要是用两种方法配合进行,分别是用Array和String这两个对象,因为我们在以后的历程中可能需要在FLASH中实现如小到留言板,大到论坛或者信息平台的功能,所以在FLASH中对数据的整理是非常重要的技术和技巧。我们在网页的功能编写中最最常见的应该算是列表之类的功能,我们今天的讨论实例将以实现软件下载系统的基本功能为主。软件下载系统相应大家都是经常接触的了,由于篇幅和时间的原因,我们在这里仅讨论软件下载系统的核心部分,其相关功能是:
我们还是用ACCESS数据库为例,在数据库中存储一系列软件信息,如软件名称,软件版本,推荐度,发布时间,软件介绍和下载链接等,然后我们将在FLASH中建立一个列表,并以每页10条记录的形式来显示这个数据库中的记录,并允许用户通过点击开始下载,这样的话,我们首先要写一个ASP文件(仅仅一个ASP文件就足够了),我们将在这个ASP文件中编写出按照指定的参数向FLASH提供第几页(如每页10条记录)的数据(其中包括每条记录的所有字段),也就是说,我们将每页的记录从ASP发向FLASH,然后再经过FLASH整理后,显示在列表上,这样的话,我们在每次从ASP发出数据时,因为需要以“变量名=值”的形式输出,所以在ASP部分的数据输出形式上是有两种风格的,我们以软件系统的数据为例讲解ASP部分的这两种数据整理风格:
第一种:我比较喜欢这一种,呵呵
变量名=软件1,软件2,软件3,软件4,软件5,软件6,软件7,软件8,软件9,软件10
第二种:我不怎么喜欢这一种,不过有很多人却喜欢这样干的
变量名0=软件数量&变量名1=软件1&变量2=软件2&变量3=软件3&变量4=软件4&变量5=软件5&变量6=软件6&变量7=软件7&变量8=软件8&变量9=软件9&变量10=软件10
两种风格之间其实也没有太明显的界线,呵呵,是吧,看各位的风格爱好了,当然也可以两种相结合,可能有部分人看到这里会纳闷,我现在在说些什么呢,怎么看不大明白呢?其实说白了也没什么,只是讨论一下我们每页要发出的数据怎样安排比较好,第一种的风格的实例如下:
aspRect=Foxmail,4.2,Windows,2003,Office,2003,Winamp,3.0
而另一种风格就如下所示:
softcount=4&softname1=foxmail&softname2=windows&softname3=office&softname4=winamp&softver1=4.2&softver2=2003&softver3=2003&softver4=3.0
各位看完前4卷的朋友应该明白我现在在说什么了吧,如果仍有不清楚的请认真的从第1卷开始看,不许偷懒(这是为大家好,当然我也可以省些口水了)
说到这里我们已经讲到了前面两种数据输出的风格,接下来我们将讨论FLASH部分的处理,关于FLASH部分的处理嘛,我只有推荐一种,那就是引用对象数组来存这些数据,对于对象数组的基本操作,大家可以参考FLASHMX帮助中的Array对象,当然,我们还是有必要举下面几个例子:
如我们要在一个对象数组中保存一条软件信息的数据记录
SoftDatas=new Array();
SoftDatas.push({name: "Foxmail", ver: 4.2, Size "2MB",Note: "这是一个邮件收发软件"});
这样的话,我们在需要引用某一个软件的相关信息时,我们可以在FLASH中写如下代码来引用,如我们要在一个动态文本域中显示这个软件的名称:
txtBox.text=SoftDatas[0].name; //0是索引咯,各位有语言基础的就不用我说了,没语言基础的同志嘛,看样子得多看看书了
对了,说到这里,我们得向大家强调一下FLASH中关于变量和对象的基本使用
变量和对象在FLASH中分两种,一种是本地变量或本地对象,另一种是全局变量或全局对象
关于本地变量和对象的声明嘛,就是普通的声明方式,(其实FLASHMX 6当中可以不用声明)如:
var a="abc"; //声明一个变量,名称是a,初始值是"abc"
var b=123; //声明一个变量,名称是b,初始值是123
c=new Array(); //声明一个Array对象,也就是数组
这种变量和对象在声明之后只能在当前影片实例中直接引用,在其它的影片实例中需要引用时要以"."或者"/"方式引用,在这里我们推荐使用"."方式引用,如:
当我们引用最顶层实例中的变量或对象时,那就是_root.变量名
当我们引用上一层实例中的变量或对象时,那就是_parent.变量名
当我们要引用某个特定实例中的变量或对象时,那就是_root.实例名1.实例名2.变量名(类似文件夹路径,也有绝对路径和相对路径的形式)
说到这里或许有些人对引用方法还不是很熟悉,这样吧,我们换一种方法来理解,其实FLASH中的场景就相同于“我的电脑”中的磁盘分区C:,D:,E:等
然后每个场景中的影片实例就相当于磁盘分区中的文件夹,每个场景中都有一个顶级的实例就是我们新建一个FLASH文档之后所显示的那个实例,这个顶级的实例我们可以理解成磁盘的根目录,其它我们创建的影片元件实例可以理解成文件夹,结构也是一样的,都是呈树状的,所以每个影片实例中还可以再创建影片实例,这就相当于在文件夹中还可以再创建文件夹,然后实例的引用就相当于文件夹的路径,只是说区别如下:
FLASH 相当于文件系统中的
_root.Windows.System32.shell C:\Windows\System32\shell
\abc _root.abc
.\abc this.abc
..\abc _parent.abc
现在各位该清楚了吧,好,我们再来说全局变量和对象的引用,这个嘛,就非常简单了,直接写变量或对象的名称就OK了
好了,跑题好半天了,该回来继续做我们的下载系统了 ^_^ (兄弟们别砸,呵呵,咦,我刚才说到哪儿了,我看看先... *^_^*)
哦,刚才说到整理数据了,说到这里有一点比较常用的技巧需要说一下,就是关于使用循环来引用变量或对象的方法,比如:我们有几个文本框,分别命名text1,text2,text3,text4,text5,然后我们不想一个一个的去引用,那么我们可以用循环或者过程来引用它们,比如说把它们的内容都设成www.coolthor.com,那么我们可以用下面的代码完成
for(i=1;i<6;i++){
this["text"+i].text="www.coolthor.com";
}
当然,除了实例["变量名"]的方法之外还有/方法,不过最好还是用上面的这个方法比较好。
好了,现在我们就要开始说下载系统的FLASH部分的实现方法了,由于篇幅原因,我在这里就只写出实现的方法
首先建立变量保存当前页的页码和总页数(这个值由ASP提供),这样我们就可以做上一页和下一页的按钮,并进行判断是不是当前页的页码超出了预期的范围,然后我们再来建立loadvars对象的实例和回调函数,然后再编写对象数组的赋值代码,参考代码如下:
/*设aspRect为返回的数据,我们以第一种风格为例,设ASP返回的数据是aspRect=Foxmail,4.2,Windows,2003,Office,2003,Winamp,3.0 */
SoftData=new Array();
tmpArray=aspRect.split(",");
tmpCount=0;
for(i=0;i<tmpArray.length;i++){
tmpCount++;
if (tmpCount==2){
tmpCount=0;
SoftData.push({name: tmpArray[i-1], ver: tmpArray[i]});
}
}
然后,我们需要准备显示列表了,我比
0
评论
Comments
日志分类
首页
[193]
flash As
[107]
有的没的
[59]
数码照片
[4]
自由世界
[19]
blender
[4]