返回列表 回复 发帖

ASP+flash下拉列表(显示图片)

在上一次中(http://space.flash8.net/bbs/view ... 65&highlight=).我介绍了.数据库与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!

[ 本帖最后由 steamlin 于 2006-8-8 17:14 编辑 ]
好长啊....      
要有点耐心喔

t4.rar (370.7 KB)

写的不错,实际运用中应该多使用组件,谢谢分享
放到我的网络空间去测试如何连接啊?
直接放上去.就可以运行的啊.
谢谢!经测试确实可行.
收藏研究
MY NAME IS GOGO
不太懂,只会asp

怎么下载不了

为什么??
附件文件不存在或无法读入,请与管理员联系。
???????????????
明天来下载就行啦.今天论坛升级.
我查找了一下,看到论坛里的这个帖子了,现已更正过来,并加上了原创字样。支持原创 !继续加油...
谢谢管理员...
明天可以下吗  我怀疑链接失效了!
不是失效.是论坛升级.要是明天不行.我再上传.
支持
如果能做成 图片分页显示每个类的图,那就更方便了,一目了然,只是提个建议! 支持原创
你用的是哪个版的flash,我用的mx2004打不开你的fla源文件
原帖由 01043122 于 2006-11-22 10:48 发表
支持
如果能做成 图片分页显示每个类的图,那就更方便了,一目了然,只是提个建议! 支持原创
不是很明白你的意思.说清楚点啊.
我再传个2004版本的.

下拉列表显示图片.rar (367.27 KB)

不用下拉就能显示图片,怎么能实现。

看了,但是不明白怎么才能够直接显示图片,就像banner广告似的。
又是下不了,自亚

回复 #20 rokaye 的帖子

是不是你积分太低了啊.我都可以下载的.
收藏一下

回复 #4 yuzhian 的帖子

你运行的文件为你FLASH的文件
为什么都是asp的有没有php的阿

回复 #24 jackhuny 的帖子

喳喳 ..就PHP把那个图片路径写出来.那么都一样的啊.FLASH文件都不用改的.
回帖是一种美德

招聘flash设计

1、美术专业毕业

2、了解网站/软件/游戏/FLASH短片等网络产品设计规律。

3、需具有较为成熟的设计思想和拥有丰富的视觉表现能力。

4、需具备良好的造型与色彩基础和较强的画面控制能力。

5、需熟练使用多种设计工具(Photoshop/CorelDRAW/Flash/Illustrator等)。
下过来慢慢研究 谢谢楼主啦
谢谢了!做一个FLASH可以读取SQL数据库里面的图片,并且实现对图片的放大缩小和移动,而且图片中指定的点点击,可以指出该点指定的列表说明所在的那一行,同时点击列表任意行可以在FLASH中选出所指的那一点!希望楼主和各位高手指定!十分感谢!
楼主在不?希望你可以给我点帮助
返回列表