flash中如何清空函数。

2024-10-30 17:17:19
有3个网友回答
网友(1):

FLASH与ASP/数据库的结合

一、下面我们就先来看看Flash与Asp之间的交互

Flash与Asp的通讯是用Http协议,其请求格式为地址?参数1=值1&参数2=值2

即是在目的地址后面加上问号,再跟上参数字符串,参数之间用“&”号格开。如:

在上面的请求中,请求的目的文件为:,第一个参数名为userid,值为guest,第二个参数名为pwd,值为123。

Flash与Asp之间的交互无非就是构造上面的请求字符串。

1、在Flash中,先构造好请求的字符串,然后利用函数LoadVariables(),就可以向服务器端发送请求和参数。我们来详细看看LoadVariables()这个函数。

函数的标准格式为loadVariables ("url" ,level/"target" [, variables])

在函数的各个参数中,url就是上面说的请求字符串。level/“target”是返回值的“层次”或者“目标”,这两个当中只能指定一个。 variables是请求的方式,其值可以是“Get”或者是“Post”,一般Get用于参数值比较短的传送,Post用于参数值比较长的传送,这个参数是可选的。比如loadVariables ("" ,0, “GET”)就是一个完整的请求。

2、在Asp中,先要取得从Flash端传送过来的参数,这跟操作普通的HTML表单是一样的。都是利用Request对象,其语句为:

username = Request(“userid”)
password = Request(“pwd”)

userid和pwd就是从Flash端发送过来的参数名,如果是上一步中的请求字符串,username的值为guest,pwd的值为123。
3、在服务器端处理完请求,获得所需要的值后,Asp向Flash端发送结果,跟从Asp中操作Html语言一样,都是用Response对象,其语句为:

Response.Write(“login=true&des=success”)

其返回值1的名为login,值为true,返回值2的名为des,值为success。

4、在Flash端取得从服务器端返回的值,与操作Flash中普通的变量没什么不同。如:
_root.gotoAndPlay(eval(login))表示的是跳转到login的值的那一帧。但要注意的是在发送请求一段时间之后,才能用返回值,不然取得的是尚未返回的值,错误就在所难免了,而且这一类的错误很难发现,用的时候要多加小心。

二、Asp与数据库之间的交互

在Asp与数据库的交互一般是用ADO控件。其读取数据库的语句为:

‘定义一个Connection对象
set conn=Server.CreateObject("ADODB.Connection")
‘用Connection对象打开数据库,这里打开的是sql server,数据库的地址为192.168.1.32
‘数据库的用户名为zengyu,密码为123
conn.open application("Driver=;SERVER=192.168.1.32;DATABASE=test;UID=zengyu;PASSWORD=123")
‘创建一个Recordset对象
set rstemp=Server.CreateObject("ADODB.Recordset")
‘构造一个sql语句
sqltemp1="select * from UserInfo where userid='"&strname&"' and password='"&strpassword&"'"
‘查询数据库
rstemp.open sqltemp1,conn, 1, 1
if not(rstemp.bof and rstemp.eof) then
Response.Write (“login=true”)
end if

这里实现的只是简单地查询数据库,要想了解Asp操作数据库更详细的东西,可以找Asp与数据库方面的资料深入学习一下。

lash+ASP+Microsoft Access
[ 2006-5-30 20:29:20 | By: 破土豆芽 ]

首先在Flash中建立入下图的物件

2个输入框(name,msg), 1个动态文本(display)和一个按钮(submit)

Flash+ASP+Microsoft Access

在Flash第一帧输入:

function loadData() {
loader = new LoadVars();
loader.load("server.asp?time="+new Date().getTime()); //向ASP取得资料的连接, 这里我不使用Math.random是因为这样有个缺点 loader.onLoad = function(success) {
if (success) {
display.htmlText = loader.Result; //loader.Result是ASP传递回来的资料 }
};
} submit.onRelease = function() else if (msg.text.length == 0) { //同上 Selection.setFocus(msg);
} else {
status.text = ""; //这个动态文本你们可以自己设定 sender = new LoadVars();
sender.name = name.text; //设定需要传递的变量 sender.msg = msg.text;
sender.onLoad = function(success) {
if (success) {
if (sender.Result == "Success") { //传递回来的讯息为Success时 status.text = "记录成功...";
name.text = msg.text=""; //清空输入栏位 loadData(); //重新刷新资料 } else {
status.text = "记录失败, 请再次尝试...";
}
delete sender; //养成习惯把LoadVars变量删除以释放内存空间 }
};
sender.sendAndLoad("server.asp?action=save", sender, "POST"); //传送出变量并等待资料传回, 传回的资料会在onLoad中截取 }
};
loadData(); //在一开始载入资料库中的资料

在ASP部分

<%
Set cnnDB = Server.CreateObject("ADODB.Connection") '建立ADODB连接 Con = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("./Database.mdb") '设定与资料库的连接, 资料库名为Database cnnDB.Open Con '进行连接

if Request("action") = "save" then '当Flash传递来的action变量为save的时候 strName = Request("name") '取得变量name, 在这里我没有做符号的检查, 你们可以自行编写 strMsg = Request("msg")
strSQL = "INSERT INTO guestbook(Name, Message) VALUES ('"&strName&"', '"&strMsg&"')" '增加资料库的设定, 资料表名为guestbook, 当中有Name和Message栏位 cnnDB.Execute strSQL '执行增加资料 Response.Write "&Result=Success"
else
Set rstObj = Server.CreateObject("ADODB.Recordset") '建立Recordset strSQL = "SELECT * FROM guestbook" '取得资料表中的所有资料 rstObj.Open strSQL, cnnDB '使用Recordset连接资料表

Do While Not rstObj.EOF '检查资料是否为最后一笔, 不是就进行下列指令 record = record & rstObj("Name")&" : "&rstObj("Message")&"
" '使用变量储存每一行的资料 rstObj.MoveNext '移动到下一笔资料 Loop

Response.Write "&Result="&record&"
Finish" '最后把变量传递回Flash

rstObj.Close '结束Recordset连接 Set rstObj = Nothing '把Recordset的指针设定为无 end if

cnnDB.Close '结束资料库连接 Set cnnDB = Nothing '设定资料库指针为无 %>

********** ASP 连接 MySQL 的方法 ***********

<%
Dim LE_DSN
Dim Conn
Dim ServerAddress
Dim DBName
Dim UID
Dim Password

ServerAddress = "localhost" '服务器的DNS名 DBName = "Super-Tomato" '资料库名字 UID = "" '用户名 Password = "" '用户密码
LE_DSN = "driver=;server=" & ServerAddress & ";db=" & DBName & ";user id=" & UID & ";pwd=" & Password & ";option=16386"

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open LE_DSN

Set rstObj = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM guestbook"
rstObj.Open strSQL,Conn

%>

Flash与数据库的连接
[ 2006-5-30 20:25:09 | By: 破土豆芽 ]

(中国矿业大学计算机科学与技术系)
摘 要:在动态网页设计中,ASP与Flash技术得到了广泛的应用。ASP具有强大的数据库处理功能,Flash能够实现交互性矢量动画,将Flash与ASP相结合,实现Flash与数据库的连接。
关键词:Flash ASP
一、引言
Flash是MacroMedia公司专为网络应用设计的一个交互性矢量动画设计软件。网站设计者可以使用Flash为网站设计各种动态Logo动画、导航条以及全屏动画,还可以加入动感音乐,完全具备多媒体的各项功能。Flash以其体积短小,流体播放的特点迅速打开市场,将WWW上的站点页面设计带上了一个全新的高度。
实现Web数据库的应用一般有两种方法:一种是Web服务器端提供中间件,连接Web服务器与数据库服务器;另一种是把应用程序下载到客户端直接访问数据库。最常用的中间件技术有通用网关接口(CGI)和应用程序编程接口(API)两种。CGI程序存在效率低、速度慢等缺点;而API很大程度上克服了 CGI的缺点,但其兼容性差,开发难度大也让许多开发人员望而却步。客户端访问数据库主要包括javascript和数据库连接器(IDC)等。用 javascript和IDC开发Web数据库虽然简单,但也存在功能有限、不能完全控制其过程等缺点,所以它们也无法胜任较复杂的Web数据库的开发。微软推出的ASP方案很好地解决了这些难题。
ASP(Active Server Page)是Microsoft公司推出的一种基于服务器端的脚本编程语言,它很容易和数据库连接。Flash与ASP的组合使网页功能更加强大,可以通过它们和数据库连接,能使我们的网站不仅具有强大的数据支持而且具有完美的交互界面。
为了实现Flash与数据库的连接,需要把Flash和ASP联系起来。可表示为图1。

变量可以通过URL传递给Flash,这是一种GET方法,把变量传递给一个swf文件的具体实现是:

接着文本Text of my variable将会出现在Flash的动画中指定的位置,我们只要把Flash所需要的数据准备好就可以实现与数据库的连接,然后利用Flash中的动画功能就可以做出既具有强大的数据处理能力又具有强大的交互能力的美观网页。
ASP和数据库的连接可用如下语句实现。
Set Connection = Server.CreateObject(ADODB.Connection)
Set Recordset = Server.CreateObject(ADODB.Recordset)
Connection.Open people
这样数据库就和ASP连接上,从而 Flash与数据库连接上去了。
在Flash中使用ASP必须满足以下条件:服务器端server必须支持Active Server Pages并且支持数据库;客户端必须安装Flash插件。
二、在Flash中使用数据库
第一步要做的是建立数据库。我们使用Access数据库为例,表名为Staff,有三个字段:ID (自动编号), Known(Text) ,name (Text) 。这是一个用来示范用户名的数据库。
第二步就是建立一个Flash 5的动画。步骤如下:
(1) 建立三个text field.它们是用来显示数据用的。
(2) 把第一个text field的name设置为Input,它是用来接收输入数据的。
(3) 另外两个text field分别命名为KnownAs和Surname。
(4) 其它设置先为默认。
(5) 最后,从Flash的library中选择增加一个按钮 (应该是一个可重用的组件 ScrollBarButton ) 。这是很重要的一步,按钮将把输入的变量传递给ASP页面。到按钮的属性(Properties)上单击Action页,单击+号和On MouseEvent.勾上Release框。
(6) 再次单击+号和Load/Unload Movie.选择Load Variables Into Location在URL输入框内输入你的ASP文件名(例如flash.asp). 选择Target。
(7) 最后,选择Variables中的Send using POST, 单击+号来设置变量在Variable输入框内输入Input(就是第一个text field的name) 。当上面的工作都完成后,可以在action box内看到如下内容:
On (Release)
Load Variables (flash.asp, , vars=POST)
Set Variable: Input =
End On
这样当在动画过程中这个按钮被点击并释放后,Input输入框中的内容将被传递给flash.asp文件。注意Form是使用的post方式传递变量的。
(8) 建立一个HTML页面,在其中包含这个Flash动画文件。
第三步:ASP文件的代码
<%
Set Connection = Server.CreateObject(ADODB.Connection)
Set Recordset = Server.CreateObject(ADODB.Recordset)
Connection.Open people
SQL = SELECT * FROM Staff WHERE ID= & Request.Form(Input) & ;
Recordset.Open SQL,Connection,1,2
If Recordset.EOF Then
KnownAs = Not
Surname = Found
Else
KnownAs = Recordset (Known)
Surname = Recordset (name)
End If
Recordset.Close
Connection.Close
response.write(KnownAs=+Server.URLEncode(KnownAs))
response.write(&Surname=+Server.URLEncode(Surname))
%>
需要注意的是在把KnownAs和Surname传递回去的写法,将是这样的
Known=Data1&Surname=Data2
使用Server.URLEncode(VariableName)来保证传递过去变量的是按照 URL格式编码的。

flash数据库连接!!!
[ 2006-5-30 20:13:00 | By: 破土豆芽 ]

System.useCodepage = true;

_global.arrTitle = new Array(5);
_global.arrImage = new Array(5);
_global.arrUrl = new Array(5);

function loadxml()
{
myxml = new XML();
myxml.ignoreWhite = true;
myxml.load("");
myxml.onLoad = function(success)
{
if (success)
{
len = myxml.firstChild.childNodes.length;
for(i=0; i<5; i++)
{
_global.arrTitle[i] = myxml.firstChild.childNodes[i].attributes.title;
_global.arrImage[i] = myxml.firstChild.childNodes[i].attributes.image;
_global.arrUrl[i] = myxml.firstChild.childNodes[i].attributes.url;
eval("_root.txt" + (i+1)).text = _global.arrTitle[i];
}
}
else
{
loadxml();
}
};
}
loadxml();

aspx文件处理:

<%@ Import Namespace="Bmhd.Components.Components" %>
<%@ Import Namespace="Bmhd.Components" %>
<%@ Page language="c#" Codebehind="TVIndex.aspx.cs" AutoEventWireup="false" Inherits="Bmhd.Web.xml.TVIndex" %>



" title="<%# DataBinder.Eval(Container.DataItem, "Title")%>" url="<%# DataBinder.Eval(Container.DataItem, "Link")%>" image="<%# TopicPicture.GetPictureUrl(DataBinder.Eval(Container.DataItem, "ImageUrl").ToString())%>" />




后台代码:

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
//
Response.ContentType = "Text/XML";
Repeater1.DataSource = Topics.GetTop5TVIndex().Topics;
Repeater1.DataBind();
}

Flash和Asp数据库的结合应用

在看这个例子之前,先讲讲Flash和Asp结合的原理,其实懂一点ASP的朋友都知道ASP是基于HTML的.

其实Flash和Asp接口的原理和纯ASP文件之间交互的原理是一样的,简单地说就是页面之间的数据交换。了解了这一点之后,我们来看看下面这个简单的例子:

这个例子是把ACCESS内的数据读出来,并在Flash内显示出来。这个例子一共有三个主要文件,一个是ACCESS的数据库文件employees.mdb,它有一个employees表,有四个字段:ID,Namelast,Lastname,Position。

现在我们就来看看这个例子的制作过程吧。第一个影帧,ACTION是stop,有一个供用户输入查询字段的文本框:strSearch,一个按钮:submit,它的ACTION是

于 (放开)

跳至并播放 (2)

退出于

第二个影帧的ACTION是:载入参数 ("employee.asp", 0, vars=GET)

这个ACTION的作用是通过ASP文件把ACCESS数据库内符合用户查询条件的数据读出来。

第三个影帧的ACTION是:

如果(NameFirst ne "")

跳至并停止 (9)

退出如果

意思是如果NameFirst不等于空值的话,就跳到第九个影帧;否则将会执行下去(即播放下一个影帧)。

第4-7个影帧都没有ACTION哦。

第八个影帧的ACTION是:

跳至并播放 (3)

回过头来再看看第三个影帧看看,呵呵,懂了吧?

如果没有符合的数据的话,就一直读到有为止;读到了就跳到第九个影帧哦。

那么再来看看第九个影帧:

一共有三个文本框:NameFirst,NameLast,Position

数据库内符合查询条件的数据将会显示在他们之中哦!

还有一个按钮:Do It Again

它的ACTION是:

于 (放开)

跳至并停止 (1)

退出于

好了,再来看看employee.asp这个文件吧:

Dim oRS, oConn '定义两个变量
Set oRS = Server.CreateObject("ADODB.Recordset") '定义oRS为RECORDSET对象
Set oConn = Server.CreateObject("ADODB.Connection") '定义oConn为CONNECTION对象
oConn.ConnectionString = "Driver=;
DBQ=" & Server.MapPath("employees.mdb")
oRS.Open "SELECT * FROM Employees", oConn, 2, 3
'嘿嘿,这两句不用说了吧?打开数据库哦
oRS.Find "NameLast = '" & UCase(Request.QueryString("strSearch")) & "'"
'找到符合条件的数据

If oRS.EOF Then '如果数据指针已到底
Response.Write "NameLast=Not+Found&NameFirst=Not+Found&Position=Not+Found"
' 呵呵,那么NameLast就是没有找到符合条件的数据咯
Else
Response.Write "NameFirst="
& Server.URLEncode(oRS("NameFirst"))
& "&NameLast=" & Server.URLEncode(oRS("NameLast"))
& "&Position=" & Server.URLEncode(oRS("Position"))
'找到的话就是找到咯(废话嘛。。。)
End If

oRS.Close
Set oRS = Nothing
oConn.Close
Set oConn = Nothing '关闭并清空数据库对象

网友(2):

一般都这样干
mc_a.onRollOver=function(){
。。。
。。。
delete this.onRollOver;

}
清空函数。

网友(3):

没错11