⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 asp+flash.txt

📁 flash 与数据库
💻 TXT
字号:
了数据库与flash 连接方式.在这里,这一方面的我就不多说了....
还有ASP中的代码.我也略过不说.就只是贴出来...

<!--#include file="conn.asp"--> 
<% 
dim rsBiClass,outBigClass,outBigClassID 
sql="select * from bigclass" 
set rsBigClass=server.CreateObject("adodb.recordset") 
rsBigClass.open sql,conn,1,1 
do while not rsBigClass.eof  
outBigClass=outBigClass&rsBigClass("bigClass")&"/" 
outBigClassID=outBigClassID&rsBigClass("id")&"/" 
rsBigClass.movenext 
loop 
response.write ("outBigClass="&outBigClass&"&") 
response.write ("outBigClassID="&outBigClassID) 
rsBigClass.close 
set BigClass=nothing 
conn.close 
set conn=nothing 
%>

保存为readBigClass.asp 
<!--#include file="conn.asp"--> 
<% 
dim bigid,outSmallClass 
bigid=request.Form("bigid") 
sql="select * from smallclass where bigid="&bigid 
set rsSmallClass=server.CreateObject("adodb.recordset") 
rsSmallClass.open sql,conn,3,3 
do while not rsSmallClass.eof  
outSmallClass=outSmallClass&rsSmallClass("smallclass")&"/" 
outSmallClassPic=outSmallClassPic&rsSmallClass("pic")&"/" 
rsSmallClass.movenext 
loop 
response.write ("outSmallClass="&outSmallClass&"&") 
response.write ("outSmallClassID="&outSmallClassPic) 

rsSmallClass.close 
set rsSmallClass=nothing 
conn.close 
set conn=nothing 
%>

保存为readSmallClass.asp, 相信大家都看得懂这段ASP代码.如果不懂的话.跟帧后.我再注说明了.
--------------------------------------------------------------------------------
现在就进入到flash里面去编程了.
从组件中找现个下拉列表,拉入两个到场景中.将其分别命名为myBigCmb,mySmaCmb
在第一帧中写上:

System.useCodepage = true; 
var readBigL = new LoadVars();//定义一个LoaVars类对像. 
readBigL.load("readBigClass.asp");//加载readBigClass.asp页面. 
readBigL.onLoad = function(su) { 
if (su) { 
  //加载readBigClass.asp成功 
  _root.gotoAndPlay(2); 
} 
}; 
stop();
//这第二帧的大部分内容在上个帧子中都用到过.无非就是从数据库取出数据,把数据分别放进定义好的数组里面去.
第二帧:

var bigClassA = new Array(); 
var bigClassIDA = new Array(); 
for (i=0; i<readBigL.outBigClass.length; i++) { 
bigClassA = readBigL.outBigClass.split("/", i); 
bigClassIDA = readBigL.outBigClassID.split("/", i); 
} 
for (j=0; j<bigClassA.length; j++) {//这是把大类放进第一个下拉列表中. 
myBigCmb.addItem({label:bigClassA[j], data:bigClassIDA[j]});//这句是为下拉列表添加数据,如果不是很清楚就找一下组件教程来学一下:) 
} 
intiItem = myBigCmb.selectedItem.data;//这是获得第一个下拉列表的最初显示的那个值,如果不加这个.那么.一运行那个flash,第二个下拉列表会没有值. 
getSmallClass(intiItem); 
//这个getSmallClass()是一个自定义函数.后面再介绍.它的功能就是从数据库中取得被选中的大类相对应的小类的值.把值取出来后再把其值赋到第二个下拉列表. 
//--------大类的change---------------------------------------- 
my = {}; 
my.change = function(cmb) {//这是大类也就是第一个下拉列表的change事件. 
bigidf = cmb.target.selectedItem.data;//获得第一个下拉列表中被选中的选项的data值. 
getSmallClass(bigidf); 
//这里再调用自定义函数.这里就是当大类一变,就从数据库中取出相对应的小类的值,同时把值取出来后再把其值赋到第二个下拉列表. 
}; 
//--------从数据库里取得小类的值----------------- 
function getSmallClass(bigidf) var smallClassSV = new LoadVars(); 
var smallClassLV = new LoadVars(); 
smallClassSV.bigid = bigidf; 
//注意这里的写变量的方式用了smallClassSV.bigid,如果不加前面的smallClassSV,那么bigid的值就不会传到被加载的ASP文件里 
smallClassSV.sendAndLoad("readSmallClass.asp", smallClassLV, "POST"); 
//这里用到了这个sendAndLoad方法来加载页页.同时把结果返回到smallClassLV类里面来. 
smallClassLV.onLoad = function(su) { 
//注意这里的onLoad 事件是smallClassLV的,而不是smallClassSV的(刚开始用这个方法时,就是这里卡了我很^_^久) 
  if (su) { 
   _global.smallClass = smallClassLV.outSmallClass; 
   _global.smallClassID = smallClassLV.outSmallClassID; 
   setSmallClass(); 
//这里调用了另一个自定义函数,这个函数的作用是为第二个下拉列表赋值,将smallClassLV接收来的数据放到第二个下拉列表中. 
  } else { 
   aa.text = "数据连接不成功"; 
  } 
}; 
} 
//----把小类的值放到下拉列表中---------------------------------------- 
function setSmallClass() {{//这个就是自定义函数.其作用就是为小类(第二个下拉列表)赋值  
//如果大家看得懂上面的,那么下面的想必是不用再作说明了吧...呵呵.... 
var smallClass = _global.smallClass; 
var smallClassID = _global.smallClassID; 
var smallClassA = new Array(); 
var smallClassIDA = new Array(); 
for (i=0; i<smallClass.length; i++) { 
  smallClassA = smallClass.split("/", i); 
  smallClassIDA = smallClassID.split("/", i); 
} 
mySmaCmb.removeAll(); 
//清除在这个下拉列表中的原来的值. 
for (j=0; j<smallClassA.length; j++) { 
  mySmaCmb.addItem({label:smallClassA[j], data:smallClassIDA[j]}); 
} 
picname = mySmaCmb.selectedItem.data;//这个是取得第二个下拉列表的最始值. 
loadpic(picname);//调用加载图片的函数. 
} 
//---------小类的change------------------------------- 
mys = {}; 
mys.change = function(cmb) { 
//这是小类的change事件 
sid = cmb.target.selectedItem.data;//当小类的选中值(也就是selectedItem)发生改变时,取得小类的选中的data值. 
loadpic(sid);//调用加载图片的值,小类一发生变化,那么相对应的显示的图片也是要变化的. 
}; 
//-------------加载外部图片------------------------------ 
function loadpic(picname) {//这个就是加载图片的函数了. 
_root.createEmptyMovieClip("picmc", 0);//创建一个空白影片剪辑. 
_root.picmc._x = 200; 
_root.picmc._y = 100;//设置空白影片的位置. 
_root.picmc.loadMovie(picname);//加载图片,注意里面的picname是当调用这个函数时,所传进入进来的(其实就是图片名字) 
} 
myBigCmb.addEventListener("change", my);//添加下拉列表的change事件. 
mySmaCmb.addEventListener("change", mys); 
stop(); 
//OK,have a try!

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -