素材图片酷 图酷镜像二 | 壁纸酷 壁纸镜像二 | 写真扫图酷 | Free Wallpaper | 贴图论坛 | ·设为首页 ·加入收藏
您现在的位置: 图酷 >> 自习室 >> 多媒体制作 >> Flash >> ACTION脚本 >> 教程正文

  没有公告


ASP+flash下拉列表(显示图片)
作者: flash_mgy
教程来源: 闪吧
教程等级:         ★★★
教程录入: 烤焦面包
教程审核: 烤焦面包
添加时间: 2006-9-2
点击次数:
字体选择: 【字体:
相关操作: 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
热门信息:
推荐内容:

在上一次我介绍了数据库与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!
  • 上一篇教程:
  • 下一篇教程:
  • ::版权和投稿说明::
    • 任何媒体、网站或个人转载、链接、转贴或以其他方式复制发表本站文章,在使用时务必注明“稿件来源:图酷”及“www.tucoo.com”字样,多谢。
    • 本站已注明“来源”的文章均为转载稿,本站转载出于传递更多信息之目的。如本站转载稿涉及版权等问题,请来信与本站联系。
    • 如果您有自己原创的作品,请向我们投稿哦!您可以通过Email:gogocat@21cn.com投出自己的作品,赶快行动吧!
    • 如果觉得我们的资源有用,请推荐给朋友,谢谢!
    ::相关教程::
    把SQL SERVER里表里的数据导出成为insert into 脚本
    二维、三维矢量类
    Java与flash的TCP通讯(XMLSocket类)
    Flash导航菜单轻松制作好帮手
    flash action 详解
    动量定理和动能定理的初步运用
    完美重力场(详细教程)
    画格子类
     
    网友评论:(评论内容只代表网友观点,与本站立场无关!) 发表评论