Flash一帧可以完成.asp也可以一个文件完成.
这里我将用户登录和用户注册分为两部做,方便大家理解;
Flash分两帧,asp分两个文件,
准备:Flash8 , IIS ,Miscrosoft Access 2003;
开始:
数据库中:
用设计视图新建一个名为 UserTable 的表,三个字段分别为 id 为自动编号,username为文本,password为文本;
输入一条数据 username 和 password 都为chooseflash;
Flash中:
新建文件命名为login.fla,舞台大小设置为250*200,背景随意;
第一帧:用户登录
新建三个图层分别命名为 bg 和 body 和as;
舞台中的实例:
一个 window 组件到舞台命名为 win;
win(背景),放到 bg 层;
二个按钮组件分别命名为: login 和 register;
login(登录),register(注册),放到 body 层;
三个 TextInput 文本输入组件分别命名为 username 和 password 和 msg;
username(用户名输入框),password(密码输入框),msg(消息框),放到 body 层;
第一帧是用户登录脚本.代码如下:
代码:
- //此帧是用户登录脚本
- stop();
- //将window组件设置为不可用.因为是做背景
- win.enabled = false;
- //新建LoadVars对象,用来发送和接收数据;
- var loginData:LoadVars = new LoadVars();
- //注册按钮
- register.onRelease=function(){
- win.title="(教程Flash与ASP)用户注册";
- msg.text="";
- gotoAndStop(2);
- }
- //登录按钮.
- login.onRelease = function() {
- //判断用户名和密码是不是为空.
- if ((username.text == "") || (password.text == "")) {
- msg.text = "请正确输入用户名或密码!";
- //判断用户名和密码是否小于8位.
- } else if((username.length<8)||(password.length<8)){
- msg.text = "用户名和密码不能小于8位!";
- } else {
- msg.text = "验证中...";
- //将用户名文体框的值付给loginData对象的username变量;
- loginData.username = username.text;
- //将用户密码文体框的值付给loginData对象的password变量;
- loginData.password = password.text;
- //使用get方法发送用户名和密码到login.asp中验证;再返回给loginData对象;
- loginData.sendAndLoad("login.asp", loginData, "get");
- }
- };
- //调用LoadVars对象的onLoad事件.
- loginData.onLoad = function(success) {
- //判断加载login.asp是否成功;
- if (success) {
- //这个是ASP中查询数据库中返回的值;
- if (loginData.success !=0) {
- msg.text = "登录成功";
- //这里大家可以写自己的代码.
- username.text="";
- password.text="";
- } else {
- msg.text = "用户名和密码不正确";
- }
- }else{
- msg.text="连接网络失败";
- }
- };
代码:
- <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
- <%
- '声明变量
- dim db,conn,div,rs,success,username,password
- '获取Flash中传过来的变量
- username=Request("username")
- password=Request("password")
- '设置一个连接对象
- set conn=Server.Createobject("adodb.connection")
- '数据库的相对路径
- db=Server.MapPath("UserTable.mdb")
- '数据库的驱动
- div="Provider=Microsoft.Jet.OLEDB.4.0;""Data Source="
- '打开连接
- conn.Open div
- '新建记录集对象
- set rs=server.createobject("adodb.recordset")
- 'SQL查询语句,用来查询数据库中是否有数据;
- sql="select * from UserTable where username='"&username"' and password='"&password"'"
- '打开查询语句
- rs.open sql,conn,1,1
- '如果数据库中没有数据rs.RecordCount将返回0;
- success=rs.RecordCount
- '将success变量发送到Flash中
- Response.Write("success="&success)
- '关闭记录集
- rs.close
- '释放记录集对象rs
- set rs=nothing
- '关闭打开的连接
- conn.close
- '释放连接对象conn
- set conn=nothing
- %>
到这里.用户登录就可以了.下面我们做的是用户注册;
第二帧:用户注册
在 body 层 按F6插入关键帧.分别修改舞台中的两个按钮的实例名为,fanghui 和 tijiao;
fanghui(返回),tijiao(提交);
然后在第二帧输入代码:
代码:
- //此帧是用户注册脚本
- stop();
- //返回按钮.
- fanghui.onRelease = function() {
- win.title = "(教程Flash与ASP)用户登录";
- msg.text = "";
- gotoAndStop(1);
- };
- //提交按钮.
- tijiao.onRelease = function() {
- //判断用户名和密码是不是为空.
- if ((username.text == "") || (password.text == "")) {
- msg.text = "用户名和密码不能为空!";
- //判断用户名和密码是否小于8位.
- } else if ((username.length<8) || (password.length<8)) {
- msg.text = "用户名和密码不能小于8位!";
- } else {
- msg.text = "注册中...";
- //将用户名文体框的值付给loginData对象的username变量;
- loginData.username = username.text;
- //将用户密码文体框的值付给loginData对象的password变量;
- loginData.password = password.text;
- //使用get方法发送用户名和密码到add.asp中查询;再返回给loginData对象;
- loginData.sendAndLoad("add.asp", loginData, "get");
- }
- };
- //调用LoadVars对象的onLoad事件.
- loginData.onLoad = function(success) {
- //判断加载login.asp是否成功;
- if (success) {
- //这个是ASP中查询数据库中返回的值;
- if (loginData.zhucei == "true") {
- //这里大家可以写自己的代码.
- msg.text = "注册成功";
- username.text = "";
- password.text = "";
- } else {
- msg.text = "用户名已存在";
- }
- } else {
- msg.text = "连接网络失败";
- }
- };
代码:
- <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
- <%
- '声明变量
- dim db,conn,div,rs,username,password
- '获取Flash中传过来的变量
- username=Request("username")
- password=Request("password")
- '设置一个连接对象
- set conn=Server.Createobject("adodb.connection")
- '数据库的相对路径
- db=Server.MapPath("UserTable.mdb")
- '数据库的驱动
- div="Provider=Microsoft.Jet.OLEDB.4.0;""Data Source="
- '打开连接
- conn.Open div
- '新建记录集对象
- set rs=server.createobject("adodb.recordset")
- 'SQL查询语句,用来查询数据库中是否有数据;
- sql="select * from UserTable where username='"&username"'"
- '打开查询语句
- rs.open sql,conn,1,1
- '如果没有数据rs.RecordCount将返回0;
- if rs.RecordCount=0 then
- '关闭上面的查询对象.
- rs.close
- 'SQL插入语句.插入新用户用的.这里的 password 因为是SQL中的关键字.所以要用[]括起来.
- sql="insert into UserTable (username,[password]) values ('"&username"','"&password"')"
- '打开插入语句
- rs.open sql,conn,1,3
- '输出true告诉Flash用户已注册.
- Response.Write("zhucei=true")
- else
- '否则就输出false告诉Flash用户已存在.
- Response.Write("zhucei=false")
- end if
- '释放记录集对象rs
- set rs=nothing
- '关闭打开的连接
- conn.close
- '释放连接对象conn
- set conn=nothing
- %>
运行IIS;