确切地说..flash是不可以直接与数据库连接的.只能是通过ASP...所以呢.首先,先在ASP里编写好连接数据库的语句
复制代码 代码如下:
<%
dimcn
dimconnstr
dimdb
db="asp.mdb"
Setcn=Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&Server.MapPath(""&db&"")
cn.Openconnstr
%>
存储为cn.asp文件;
第二步;就编写一个读取数据库数据的ASP文件喽...
复制代码 代码如下:
<>
<%
setrs=server.createobject("adodb.recordset")
rs.open"select*fromclass",cn,3,3
fori=1tors.recordcount
ifnotrs.eofthen
totalClass=totalClass&rs("Class")&","
totalLink=totalLink&rs("classlink")&","
rs.movenext()
endif
next
response.write("flashClass="&totalClass&"&")
response.write("flashLink="&totalLink&"&")
'注意这个写格式.多个参数得用&这个来连接.有些人会忽略到这一点.导致在flash不能写出数据来. %>
将这个文件存储为:write.asp
第三步;回到flash那里来编写语句.把write.asp文件加载进来.
第一帧:
System.useCodepage=true;
varnewload=newLoadVars();//如果不是很了解这个LoaVars,可以去查一下那个flash里面的帮助文档
newload.load("write.asp");
newload.onLoad=function(success){
if(success){
_root.gotoAndStop(2);//当文件被加载完成后,执行第二帧.
}
};
stop();//这里要注意.如果不用停止.假设文件还没有加载完就执行第二帧...而在第二帧是在flash里读取数据的.那就导致读不出数据
第二帧:
_root.name.text=newload.flashClass;//下面两句是读取数据的.
_root.link.text=newload.flashLink;
_root.bt._visible=false;//是一个影片的名字,里面放有一个动态文本bttext
//现在就把数据放到数组中去....
varaspclass=newload.flashClass;
varlink=newload.flashLink;
varAclass=newArray();
varBlink=newArray();
for(i=0;i<aspclass.length;i++){
Aclass=aspclass.split(",",i);
Blink=link.split(",",i);
}
for(i=0;i<Aclass.length-1;i++){
//for(i=1;i<6;i++){
_root.bt.duplicateMovieClip("bt"+i,i);
_root["bt"+i]._y=i*30;
_root["bt"+i]._x=5;
_root["bt"+i].url=Blink;
_root["bt"+i].bttext.text=Aclass;
_root["bt"+i].onRelease=function(){
_root.link2.text=this.url;
getURL("http://"+this.url,"_blank");
};
}