虞智辉
无锡高等师范学校 江苏无锡 214001
随着Flash技术的日益发展,Flash在网页开发上的应用可谓层出不穷,但既然是运用于网页上,那就与网页的基本语言HTML息息相关,所以Flash动画与HTML语言的有机结合,也成为时下Flash动画发展的一个基本方向。以下是笔者在平时制作Flash站点时经常要用到的与HTML有关的实用技巧,希望能够对大家有一定的帮助,同时也希望能抛砖引玉,引起大家对Flash与Web技术相结合的更深入的探讨。
在早期的网页中,由于技术的限制,只能看到一些静态的文字和图片。随着Flash技术的出现,把通过Flash软件导出的swf文件或者gif图片插入网页中,这样网页就可以由能够不断变化的图像或者丰富的文字动画效果组成,使网页有了初步的动画效果,这就是动画和网页的初步结合。
随着动画技术和网页编程语言的深入发展,人们已经越来越不能满足这样单向的欣赏,而是希望能在保留动画的同时,和网页或者网站有所交流,以达到自己的某种要求和目的。于是asp、php、jsp等技术应运而生。正是在Flash中嵌入了这些动态网页语言,不仅保留了网页的生动,而且增添了交互、实时、动态解析等新特性。
但是,Flash的动态解析存在一个问题,它用“load()”命令从后台服务器读取数据的时候不可以使用相对地址,而必须使用绝对地址。如要读取服务器上show.asp文件时,不能直接写“load(show.Asp)”,而必须写“load(http://www.wxgdsf.cn/show.asp)”完整路径。为什么呢?因为当Flash播放器接收到“load(show.asp)”命令时,它会认为这是一个本地文本文件(.txt),于是便不会经过IIS的运行处理而直接读入Flash内部。当然,把“.asp”文件读成“.txt”文件,结果就是一堆乱码。而当Flash播放器执行“load(http://www.wxgdsf.cn/show.asp)”这个命令的时候,由于它是一个HTTP请求,必须要经过IIS的处理,于是Flash player就不会认为它是本地的文本文件了。Flash player把这个请求发送到HTTP服务器,服务器的IIS解析脚本返回结果后,Flash播放器便可以正确处理这些数据。
虽然只要在语言中输入正确的HTTP完整路径,就可以让Flash player读取正确的数据,但是面临的问题是,在进行编程开发或者进行程序调试时,需要经常更换计算机或者服务器,以检测各种情况的发生。那就造成一种麻烦,也就是每更换到一个服务器上面的时候,就要修改一次源程序中的HTTP路径,需要读取的文件越多,改动的次数也会相应地增加,这样就给调试带来很大的麻烦。那么如何解决这一问题?通过实践研究发现,如果在读取文件前先读取地址,或者将地址直接传递给Flash player,就可以解决这一问题。
思路:1)获得服务器地址;2)将服务器地址保存;3)读取服务器地址并赋值给一变量;4)利用asp语言环境中变量的传递方法传递服务器地址。
代码如下:
<%
Dim PageUrl, URLarry, ApplicationURL, n
PageUrl="http://" & Request.ServerVariables("http_host") & Request.ServerVariables ("url")
URLarry=Split (PageUrl,"/")
Arryubound=ubound (URLarry,1)-1
For n=0 to Arryubound
ApplicationURL=ApplicationURL&URLarry (n) &"/"
NEXT
%>
在swf文件中这样写“<%="aa.swf?myurl=”&ApplicationURL%> ”,这样就可以通过URL把变量传递给swf文件,在Flash影片中便可以直接访问这个变量。
动态技术的最大特点就是人机的一种交流,或者通过计算机成为人们之间的另一种交流通道。有交流,就会产生大量的信息,有些需要保留,有些需要删除,有些需要排序,有些需要被检索,还有一些需要共享,那就引出一个问题:这些数据该如何来管理?于是数据库技术就诞生了。可以说数据库是网络动态技术的核心。
同样,随着Flash动画在网站中的深化运用,与数据库的链接已经成为一种必然现象。Flash动画与数据库的链接,不但可以使网页继续保留丰富的动态效果,而且可以保留人们交流的信息,使交流变得更有目的和效率。那么数据库如何与Flash-Website进行链接呢?
要知道如何链接,首先必须要知道Flash与动态技术结合的原理。以基于HTML的asp动态语言为例,Flash和asp接口的原理和纯asp文件之间交互的原理是一样的,简单地说就是页面之间的数据交换。知道这一点后,一切就变得简单了。
计算机中必须装有IIS环境,必须支持数据库;计算机中必须装有Flash4.0以上版本;要对asp有初步的了解。
可以利用Access数据库建立数据库文件infor.mdb,其包含一个数据表infor1,该数据表中包含4个字段名:编号(bh)、姓名(xm)、性别(xb)、单位(dw)。
1)在第一关键帧内建立一输入文本框,设置变量名为bh,在第二关键帧内建立3个动态文本框,分别设置变量名为xm、xb、dw。效果如图1、图2所示。
图1 第一关键帧
图2 第二关键帧
2)原理是鼠标点击按钮后,利用编号来获得该用户的其余信息。
按钮的主要程序如下:
On (press) {
Load Variables (“infor.asp”, “”, vars=POST)
Set Variable: “bh” = “”
}
3)利用HTML语言建立网页文件infor.asp,并将该动画插入至网页中
4)输入asp程序代码:
Dim rs, conn
Set rs = Server.CreateObject(“ADODB.Recordset”) //定义rs为RECORDSET对象
Set conn = Server.CreateObject(“ADODB.Connection”) //定义conn为CONNECTION对象
conn.open "Driver={Microsoft Access Driver(*.mdb)}; DBQ=" & Server.MapPath("infor.mdb")//建立数据库引擎
SQL = “SELECT * FROM infor WHERE bh=” &Request. Form(“bh”) & “;”
rs.Open SQL,conn ,1,2 //打开数据表
do while not rs.eof
xm=rs (“xm”)
xb=rs (“xb”)
dw=rs (“dw”)
rs.movenext
loop
Response. Write "xm="& Server.URLEncode (rs("xm"))
Response. Write "xb="& Server.URLEncode (rs("xb"))
Response. Write “dw=”& Server.URLEncode(rs(“dw”))//保证返回过去变量的是按照URL格式编码的
rs.Close
set rs=nothing
conn.Close
set conn=nothing//清空
以上是笔者在Flash制作时经常用到的2个技术。随着Flash-Website的不断发展,Flash技术与Web技术越来越紧密地配合,越来越多的动画功能将在网站中被加以实现。相信今后,网页将不单是技术发展的体现,更是综合技术的平台。
[1]周峰,王征.FLASH ACTIONSCRIPT 3.0网络动画编程基础与实践教程[M].北京:电子工业出版社,2008
[2]林纪河,祁玉芹.FLASH CS4网络动画制作简明教程[M].北京:电子工业出版社,2009
[3]童罕,吴庆波,等.一种动态网页加速技术中的机制探讨[J].微计算机信息,2009(27)
[4]崔俊杰.动态网页技术浅析[J].长沙民政职业技术学院学报,2006,13(13)
[5]李志勇,徐长通.基于ASP的WEB数据库智能查询[J].河南师范大学学报,2010,38(1)