ASP flash下拉列表(顯示圖片)_Flash教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:flash與數據庫的連接確切地說..flash是不可以直接與數據庫連接的.只能是通過ASP(只是我比較了解ASP,也可以是其他的PHP/JSP等);所以呢.首先,先在ASP里編寫好連接數據庫的語句%dim
在上一次我介紹了數據庫與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!
分享:Flash制作超炫彩色線條圖案動畫特效大家好,今天和大家分享一下利用線條來制作一種超炫的Flash線條特效效果。在制作之前,讓我們一起先來看一下最終的效果。點擊這里下載源文件第1步:新建一個新
相關Flash教程:
- 相關鏈接:
- 教程說明:
Flash教程-ASP flash下拉列表(顯示圖片)
。