想从外部文件(例如文本文件,或由 ColdFusion、CGI 脚本、ASP、PHP 或 Perl 脚本生成的文本)中读取数据,并设置 Flash Player 的某个级别中的变量的值。我们一般要用到
指 定的 URL 处的文本必须为标准的 MIME 格式 application/x-www-form-urlencoded(CGI 脚本所使用的一种标准格式)。可以指定任意数量的变量。例如,下面的代码定义了多个变量:loadVariablesNum 函数 和loadVariables 函数
loadVariablesNum 函数
loadVariablesNum(url:String, level:Number, [method:String]) : Void此函数还可用于使用新值更新活动 SWF 文件中的变量。
参数
url:String – 变量所处位置的绝对或相对 URL。如果发出此调用的 SWF 文件正在 Web 浏览器上运行,则 url 必须与 SWF 文件位于同一个域中;有关详细信息,请参见”说明”部分。
level:Number – 一个整数,指定 Flash Player 中接收这些变量的级别。
method:String [可选] – 指定用于发送变量的 HTTP 方法。该参数必须是字符串 GET 或 POST。如果没有要发送的变量,则省略此参数。GET 方法将变量附加到 URL 的末尾,它用于发送少量的变量。POST 方法在单独的 HTTP 标头中发送变量,它用于发送长字符串的变量。
loadVariables 函数
loadVariables(url:String, target:Object, [method:String]) : Void
参数
url:String – 变量所处位置的绝对或相对 URL。如果发出此调用的 SWF 文件正在 Web 浏览器上运行,则 url 必须与 SWF 文件位于同一个域中;有关详细信息,请参见”说明”部分。
target:Object – 指向接收所加载变量的影片剪辑的目标路径。
method:String [可选] – 指定用于发送变量的 HTTP 方法。该参数必须是字符串 GET 或 POST。如果没有要发送的变量,则省略此参数。GET 方法将变量附加到 URL 的末尾,它用于发送少量的变量。POST 方法在单独的 HTTP 标头中发送变量,它用于发送长字符串的变量。
如果要将变量加载到目标影片剪辑中,请使用 loadVariables() 而不是 loadVariablesNum()。
了解了这两个函数后我们就可以用它实现载入外部TXT文件。
准备工作:
创建一个文本文件t.txt,内容是t=xxxxxxxxxxxxxxxxxxxxxx。
(注意:“=”前后不能有空格。)
示例:t=这正在制作载入外部TXT文本文件的效果
FLASH部分:
这里直接在_root里创建文本域content_txt,使用loadVariables()方法。
System.useCodepage = true;
createTextField(“content_txt”,0,0,0,200,0);
/*创建一个新文本字段的深度为0 x 坐标为0 y 坐标为0字段的宽度为200字段的高度为0的content_txt /*
content_txt.wordWrap = true;
content_txt.variable = “t”;
content_txt.autoSize = “left”;
content_txt.selectable = false;
loadVariables(“t.txt”, _root);
装载t.txt后,其t的内容自动赋值给_root.content_txt的变量t。
这种方法不需要在场景内建立任何动态文本框。加载t.txt中T的内容直接显示在主场景上
Flash是支持少量的html语法的。
如果你对html语法不太熟悉的话,先用网页制作工具frontpage等建一个简单的文本,
在普通页面里给它加上超连接、字体颜色、下划线等非常简单。
frontpage里html显示如下:<p align=left><font color=’#FF6699′>载入TXT实验</font></p>
给变量t赋值如下:
t = “<p align=left><font color=#FF6699>载入TXT实验</font></p>\r\n
<p>***********************************************************************************。</p>\r\n
<p align=right><a href=http://www.578453175.com/>
<font color=#008080><u>转载网址</u></font></a></p>”
FLASH的AS:
在主场景第一帧上:
loadVariablesNum(“t.txt”, 0); //把t.txt载入进FLASH
在第二帧上:
t.htmltext = t;
stop();
同时把实例名为T的动态文本框加入些帧(在flash里建动态文本框,实例名为t。设置多行显示,把html等4个选项的勾全选。 )
这样,FLASH就能够把简单的HTML代码所标识的效果反映出来。
上 面几节flash+txt教程我们了解了FLASH怎么调用外部的TXT文本文件,这样更新网站内容时,只需打开这个TXT更改内容就可以了。但是我们需 要把TXT文件打开才能更改,有没有办法在后台里直接更新TXT文本内容呢,或者直接用FLASH来生成这个TXT。这节我教大家用FLASH通过ASP 直接生成TXT的文本文件。(可用于制作留言本)
准备工作:
1、一个ASP文件用于写入数据的用途:guest.asp
<%
subject = request(“sub”)
name = request(“name”)
text = request(“text”)
action = request(“action”)
if (action <> “add”) then
set fin = Server.CreateObject(“Scripting.FileSystemObject”)
filepath = Server.MapPath(“guest.txt”)
set f = fin.OpenTextFile(filepath)
buf = f.readAll
response.write(buf)
f.close
end if
if (action = “add”) then
set fin = Server.CreateObject(“Scripting.FileSystemObject”)
filepath = Server.MapPath(“guest.txt”)
set f = fin.OpenTextFile(filepath)
line = f.readline
total = int(mid(line,8))
buf = f.readAll
f.close
set fout = Server.CreateObject(“Scripting.FileSystemObject”)
Application.lock
filepath = Server.MapPath(“guest.txt”)
set f = fout.CreateTextFile(filepath,TRUE)
total = total + 1
f.writeline “&total=”&total
f.writeline “&sub”&total&”=”&subject
f.writeline “&name”&total&”=”&name
f.writeline “&text”&total&”=”&text
f.write buf
f.close
Application.unlock
response.write(“&added=1”)
end if
%>
2、文本文件(数据库用途)guest.txt
内容:
&total=0
先定义数据为0
FLASH部分:
我们创建三个数据写入TXT,分别是:sub(主题),name(名字),text(内容);然后total数据自动增加.
在FLASH里的第一帧,我们先把这些数据初始化,并调用ASP文件读取TXT里的数据。
在第一帧上写:
total = 0;
added = 0;
sub = “”;
name = “”;
text = “”;
backmethod = 0;
r = random(65500);
loadVariables(“guest.asp?action=” add r, “”);
在第二帧上:
接着我们创建几个输入文本框,把要创建的数据提交上去
变量名为sub的输入文本框
变量名为name的输入文本框
变量名为text的输入文本框
一个提交按钮,提交钮
on (release) {
gotoAndPlay(“do_insert”);
}
把过程交给帧实例名为do_insert的去处理,当然你也可以直接提交处理,但这样看起来清楚些。
在第三帧上:
if ((sub eq “”) or (name eq “”) or (text eq “”)) { //判断各项数据填写是否为空
gotoAndPlay(“error”);//填写为空的话就转到帧实列名为error的处理效果
} else {
temp = “正在向服务器添加数据……”;//或者动态文本text里出现提示语
loadVariables(“guest.asp?action=add”, “”, “POST”);
gotoAndPlay(“wait2”);//转到帧实列名为wait2的处理效果
}
并对该帧命名为do_insert,在此帧上创建一个动态文本,变量命为text。
在第四帧上创建ERROR错误出现效果,在第五帧上创建WAIT2等待写入的效果。
这样,就完成了,用FLASH生成一个叫guest.txt的文件的效果,并且每次写入新信息,会在该txt文件里加一条新的信息。