FLASH文件与外部文件的数据交换

FLASH 提供了与外部文件进行数据交换的功能,这无疑是扩大了 FLASH 的应用范围。FLASH 与外部联姻的最典型文件格式是TXT文件和ASP文件。前者可在客户机运行,后者要服务器支持。此外,也可以直接接受HTML文件的变量。下面分别进行介绍。

FLASH 能接受的变量格式为: 变量名=变量值 .FLASH 支持多变量接受, 将上格式的多个变量分别用 & 分隔便可。

1. 从HTML 页面中向FLASH 传送变量:

1.1 把调用SWF文件的那条语句:
<param name=movie value="您的SWF文件.SWF">改为:<param name=movie value="您的SWF文件.SWF?变量名=变量值">
此时,SWF文件中就能接受到变量。

1.2 如果要在同一个HTML文件中传送多个变量则书写格式为:
<param name=movie value="您的SWF文件.SWF?变量名1=变量值1&变量名2=变量值2&变量名3=变量值3">

1.3 在SWF文件中设一文本字段,其字段的名(变量名)设置成与HTML文件传送的变量名相一致。

1.4 运行HTML文件,可见调用的SWF文件中显示出HTML中的变量。

2. 从TXT文件中读取变量:

2.1 建立一个TXT文件,文件中的变量书写格式为:
txt1=这是FLASH读取TXT文件 ,其中“txt1” 是变量名,“这是FLASH读取TXT文件” 是变量值。

2.2 如果要在同一个TXT文件中设置多个变量则书写格式为:
txt1=data1&txt2=data2.......

2.3 在SWF文件中设一文本字段,其字段的名(变量名)设置成与TXT文件中的变量名相一致,要读取多少个变量,就设多少个字段。

2.4 在关健帧上设Actions
双击关健帧,弹出Actions设置框,单击"+"号和Load/Unload Movie.
选择"Load Variables Into Location" 在URL输入框内输入你的TXT文件名(例如flashtxt.txt). 选择Target. 最后选择Variables中的Send using GET.
全部Actions如下:
Load Variables ("flashtxt.txt", "",vars=GET)

2.5 运行SWF文件,您可以看到TXT文件中的变量在SWF文件中显示。
当然,FLASH所接受的变量不仅是可以显示,还可以在FLASH中作为其它用途,比如作为Acyions的参数使用等等,您可以发挥您的想像,创造出很多的用途。

3. 从ASP文件中读取变量:
关于ASP文件,这里不准备作详细介绍,只讲涉及FLASH读取部份的内容。先介绍一个ASP的内置对象:response 。这个对象用来从服务器向客户机传送信息。其中 Response.Write 是输出信息的方法。对象是另一个是Server。
Server.URLEncode 方法则把ASP中的字符串作为URL格式编码为目标字符串,这正是FLASH所能接受的格式。好了,下面具体讲述:

3.1 编写ASP 文件。(具体内容视功能而定)

3.2 在ASP文件设置中向客户机输出的语句。如:
<% m0="OK" response.write("m1="+Server.URLEncode(m0)) %>
("m1="+Server.URLEncode(m0))是保证输出的变量格式为:
变量名=变量值。这一点最为重要,否则接受会不成功。
多个变量输出到SWF文件则用&联接如:
response.write("m1="+Server.URLEncode(m1))
response.write("&m2="+Server.URLEncode(m4))

3.3 SWF文件中设文本字段,这和上面(一)(二)所讲的方法和要点相同。本例SWF文件中文本字段名为m1。

3.4 在关健帧上设Actions
双击关健帧,弹出Actions设置框,单击"+"号和Load/Unload Movie.
选择"Load Variables Into Location"在URL输入框内输入你的ASP所在的URL和文件名(例如:http://***.***.****.***/js.asp). 选择Target.
最后,选择Variables中的Send using GET.

全部Actions如下:
Load Variables ("http://***.***.****.***/js.asp", "", vars=GET)
由于ASP文件是在服务器端运行的,所以文件名前要加上服务器的地址,这一点也要注意。

3.5 保证与服务器是联接的并运行SWF的HTML文件,可见变量m1的值“OK”显示在SWF文件中。

4. 向ASP文件中输送变量:
这是3的相反过程。 也先介绍一个ASP的内置对象:Request 这个ASP对象的作用是从客户机获取信息。 Request.form 表方法就是从客户机取得表单信息,如Request("REMOTE_ADDR"),加上REMOTE_ADDR参数则取得客户机的IP地址
.....这些已经不是FLASH的相关内容了,就此打住,讲正题:

4.1 在ASP文件中设读客户机表单的语句:如:m3=Request.form("input")

4.2 在SWF文件设文本字段,并定义为可编辑输入的字段。(不应该不会吧?),另设一个文本字段用来接受ASP处理后的变量,方法与(2)同不另。注意文本字段名要与ASP文件中所接受的变量名一致,本例为“input“。

4.3 在SWF中设一个按钮,在按钮Actions上设脚本指令。(相当于HTML的

发送按钮,总要让FLASH知道什么时候发送吧)双击按钮,选择Actions,弹出Actions设置框,单击"+"号和Load/Unload Movie.
选择"Load Variables Into Location"在URL输入框内输入你的ASP所在的URL和文件名(例如:http://***.***.****.***/js.asp). 选择Target.
最后,选择Variables中的Send using POST表单发送是以POST传送的)

全部Actions如下:
Load Variables ("http://***.***.****.***/js.asp", "", vars=POST)

4.4 保证与服务器是联接的并运行SWF文件,运行SWF的HTML文件,显示出输入框,随便输入几个字,点发送按钮,可见您输入的变量值经过ASP又由您的FLASH读也显示的SWF文件中。
到目前为止,您已经掌握了ASP文件与FLASH文件的接口要点,实际上FLASH做的留言本、计数器、聊天室的基本接口技术不过如此。