flash新闻图片轮转————c#+数据库解决
因為需要,寫一個flash播放新聞輪轉(zhuǎn)的小程序,參考了網(wǎng)上一個例子,他是java做的,我是用c#,而且我的和他的思路有所不同1、聲明需要文件:pixviewer.swf 就可以了(以備調(diào)用需要),厲害吧
2、html內(nèi)靜態(tài)代碼:
<script type="text/javascript">
<!--
?var interval_time=2;
?var focus_width=160;
?var focus_height=130;
?var text_height=0;//設(shè)置為0所以看不到標(biāo)題
?var text_align="center";
?var swf_height = focus_height+text_height;
?var swfpath="http://www.xxx.cn/e/data/images/pixviewer.swf";
?var swfpatha=http://www.xxx.cn/e/data/images/pixviewer.swf;
?
?var pics="/d/file/news/ch/20090613/48154c81c1eee8a4ddeb95cd7bc34afd.jpg|/d/file/news/ch/20090610/301bc25969140ec1e4e0b26009922a17.jpg|/d/file/news/ch/20090602/smallfc537db511882dd89cadfc0771f99f0f.jpg|/d/file/news/ch/20090602/small1d06270b675077713a7760352104750b.jpg|/d/file/news/ch/20090529/c2129a49db54920d46f2390b41e096eb.jpg";
?var links="http://www.52ch.cn/news/ch/20090613/4739.html|http://www.52ch.cn/news/ch/20090610/4738.html|http://www.52ch.cn/news/ch/20090602/4718.html|http://www.52ch.cn/news/ch/20090602/4717.html|http://www.52ch.cn/news/ch/20090529/4704.html";
?var texts="||||";
?
?document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="'+ focus_width +'" height="'+ swf_height +'">');
?document.write('<param name="movie" value="'+swfpath+'"><param name="quality" value="high"><param name="bgcolor" value="#ffffff">');
?document.write('<param name="menu" value="false"><param name=wmode value="opaque">');
?document.write('<param name="FlashVars" value="pics='+pics+'&links='+links+'&texts='+texts+'&borderwidth='+focus_width+'&borderheight='+focus_height+'&textheight='+text_height+'&text_align='+text_align+'&interval_time='+interval_time+'">');
?document.write('<embed src="'+swfpath+'" wmode="opaque" FlashVars="pics='+pics+'&links='+links+'&texts='+texts+'&borderwidth='+focus_width+'&borderheight='+focus_height+'&textheight='+text_height+'&text_align='+text_align+'&interval_time='+interval_time+'" menu="false" bgcolor="#ffffff" quality="high" width="'+ focus_width +'" height="'+ swf_height +'" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />');
?document.write('</object>');
//-->
</script>
//參數(shù)說明
interval_time?設(shè)置圖片的停頓時間,單位為秒,為0則停止自動切換。
???如果沒有此參數(shù),系統(tǒng)默認(rèn)為5秒。
?
?focus_width?幻燈片的寬度,單位為像素。
?focus_height?幻燈片的高度,單位為像素。
?text_height?標(biāo)題文字的高度,單位為像素,為0則不顯示標(biāo)題文字。
?text_align?標(biāo)題文字的對齊方式(left、center、right)
???如果沒有此參數(shù),系統(tǒng)默認(rèn)為center。
???注意:一定要有單引號,如'left'。
?swf_height?影片高度,即幻燈片高度與標(biāo)題高度之和。
???相加之和最好是偶數(shù),否則數(shù)字會模糊失真。
?pics??圖片地址,可以使用相對路徑也可以使用絕對地址。
???多個圖片用豎線“|”分割,最多9個!
???支持的文件格式為:.jpg、.gif、.png、.swf
?links??圖片對應(yīng)的鏈接地址,可以使用相對路徑也可以使用絕對地址。
???多個鏈接地址用豎線“|”分割,最多9個!
???鏈接中不能包含“&”符號,否則會出錯。
?texts??圖片對應(yīng)的標(biāo)題文字,不能包含“&”符號,否則會出錯。
???多個標(biāo)題文字用豎線“|”分割,最多9個!?
3、修改后成為很好用的模塊,代碼如下,主要是紅色更改部分
<!--
?var interval_time=2;
?var focus_width=160;
?var focus_height=120;
?var text_height=0;
?var text_align="center";
?var swf_height = focus_height+text_height;
?//var swfpath="http://www.xxx.com/dir/pic/pixviewer.swf";//播放器目錄,真正放到web上用
? var swfpath="pic/pixviewer.swf"//本地調(diào)試時候用
?var pics='<%=get_pic()%>';
?var links='<%=get_address()%>';//注意一定要用單引號,否則不行
?var texts="||";
?
?document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="'+ focus_width +'" height="'+ swf_height +'">');
?document.write('<param name="movie" value="'+swfpath+'"><param name="quality" value="high"><param name="bgcolor" value="#ffffff">');
?document.write('<param name="menu" value="false"><param name=wmode value="opaque">');
?document.write('<param name="FlashVars" value="pics='+pics+'&links='+links+'&texts='+texts+'&borderwidth='+focus_width+'&borderheight='+focus_height+'&textheight='+text_height+'&text_align='+text_align+'&interval_time='+interval_time+'">');
?document.write('<embed src="'+swfpath+'" wmode="opaque" FlashVars="pics='+pics+'&links='+links+'&texts='+texts+'&borderwidth='+focus_width+'&borderheight='+focus_height+'&textheight='+text_height+'&text_align='+text_align+'&interval_time='+interval_time+'" menu="false" bgcolor="#ffffff" quality="high" width="'+ focus_width +'" height="'+ swf_height +'" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />');
?document.write('</object>');
//-->
</script>
4、在c#中過程是,定義全局變量,得到變量值,定義好返回函數(shù),返回函數(shù),ok
//定義數(shù)組變量
?? public static String[] news_pic = new string[20];
??? public static String[] news_link = new string[20];
protected void Page_Load(object sender, EventArgs e)
{
string sql = "select * from news where inf_type='ok_ok' order by news_no desc";
??????? OleDbConnection Conn = cs.acce_Conn();
??????? Conn.Open();
??????? OleDbCommand cmd;
??????? cmd = new OleDbCommand(sql, Conn);
?????? // OleDbDataReader reader;
?????? // reader = cmd.ExecuteReader();
?????? //reader.Close();
??????? int news_link_count = cs.accessGetDataSet("select * from news where inf_type='ok_ok' and NewsType='鏈接'").Tables[0].Rows.Count;//判斷符合的記錄數(shù)目
??????????????? string sql_news_pic;//判斷要顯示的圖片數(shù)目,決定sql語句
??????????????? if (news_link_count >=5)
??????????????? {
??????????????????? sql_news_pic = "select top 6 * from news where inf_type='ok_ok' and? NewsType='鏈接'order by news_no desc";
??????????????? }
??????????????? else
??????????????? {
??????????????????? sql_news_pic = "select top " + news_link_count.ToString() + " * from news where? inf_type='ok_ok' and? NewsType='鏈接'order by news_no desc";
???????????????? }
???????????????
??????????????? for (int i = 1; i <= news_link_count ;i++ )//得到數(shù)據(jù)庫中的的值
??????????????? {
??????????????????? news_pic[i] = cs.accessGetDataSet(sql_news_pic).Tables[0].Rows[i-1]["news_pic"].ToString().Replace("\\", "/");//替換字符串以正確顯示
??????????????????? news_link[i] = cs.accessGetDataSet(sql_news_pic).Tables[0].Rows[i-1]["newspic_link"].ToString() + cs.accessGetDataSet(sql_news_pic).Tables[0].Rows[i-1]["news_no"].ToString();//附值
???????????????? }
??????? Conn.Close();
}
//返回函數(shù)
protected String get_address()//得到流,輸出圖片的連接
??? {
??????? string str_address = news_link[1] + "|" + news_link[2] + "|" + news_link[3] + "|" + news_link[4] + "|" + news_link[5];//多個字段相加
??????? return (str_address);
???? }
??? protected string get_pic()//得到流,輸出圖片地址
??? {
??????? string str_pic = news_pic[1] + "|" + news_pic[2] + "|" + news_pic[3] + "|" + news_pic[4] +"|" + news_pic[5]; //多個字段相加
??????? return(str_pic);
??? }
5、這樣,就完美解決了從數(shù)據(jù)庫中讀取數(shù)據(jù)了,flash新聞圖片達到效果啦。
090731發(fā)現(xiàn),如果在該前提下,更改var texts="||"為 var texts="1|2|3|4|5",文字12345均不能顯示(原來是text_height=0導(dǎo)致),惟有另想辦法,剛發(fā)現(xiàn)網(wǎng)上另有一播放器(Bcastr 3.0 beta flash? 通用的圖片瀏覽器),剛好適合,拿了下來改名為pixviewer.swf,更改小小東西就可以了,可以說是目前的終極版本哦。哈哈,看代碼
document.write('<param name="FlashVars" value="bcastr_file='+pics+'&bcastr_link='+links+'&bcastr_title='+texts+'&0xffffff|2|0xff6600|20|0xffffff|0xff6600|0x000033|3|2|1|_blank">');
document.write('<embed src="'+swfpath+'" wmode="opaque" FlashVars="bcastr_file='+pics+'&bcastr_links='+links+'&bcastr_title='+texts+'&menu="false" bgcolor="#ffffff" quality="high" width="'+ focus_width +'" height="'+ swf_height +'"? type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />');
請注意,雖然改動地方少,但要注意:bcastr_link與bcastr_links的區(qū)別,我調(diào)試的時候可麻煩多了。呵呵
對于默認(rèn)字符串配置 高級設(shè)置
默認(rèn)參數(shù)字符串 0xffffff:文字顏色|2:文字位置|0xff6600:文字背景顏色|60:文字背景透明度|0xffffff:按鍵文字顏色|0xff6600:按鍵默認(rèn)顏色|0x000033:按鍵當(dāng)前顏色|8:自動播放時間(秒)|2:圖片過渡效果|1:是否顯示按鈕|_blank:打開窗口
顏色都以0x開始16進制數(shù)字表示
文字顏色:題目文字的顏色
文字位置:0表示題目文字在頂端,1表示文字在底部,2表示文字在頂端
文字背景透明度:0-100值,0表示全部透明
按鍵文字顏色:按鍵數(shù)字顏色
按鍵默認(rèn)顏色:按鍵默認(rèn)的顏色
按鍵當(dāng)前顏色:當(dāng)前圖片按鍵顏色
自動播放時間:單位是秒
圖片過渡效果:0,表示亮度過渡,1表示透明度過渡,2表示模糊過渡,3表示運動模糊過渡
是否顯示按鈕:0,表示隱藏按鍵部分,更適合做廣告挑輪換?
影片自動播放參數(shù):0表示不自動播放,1表示自動播放
影片連續(xù)播放參數(shù):0表示不連續(xù)播放,1表示連續(xù)循環(huán)播
默認(rèn)音量參數(shù) :0-100 的數(shù)值,設(shè)置影片開始默認(rèn)音量大小
控制欄位置參數(shù) :0表示在影片上浮動顯示,1表示在影片下方顯示
控制欄顯示參數(shù) :0表示不顯示;1表示一直顯示;2表示鼠標(biāo)懸停時顯示;3表示開始不顯示,鼠標(biāo)懸停后顯示
打開窗口:_blank表示新窗口打開。_self表示在當(dāng)前窗口打開
而對于var texts="1a|2b|3c|4d|5e";字符串的獲取,則參照var pics='<%=get_pic()%>'方法,經(jīng)過多次的調(diào)試和測試,終于完成一個終極版,很是開心。程序,真的要不斷改進,不斷發(fā)現(xiàn)和思考,當(dāng)然,還需要行動哦.
最后說明一下:參考java做法,它在javascript中做,理論上應(yīng)該是比在.net頁面中運行速度快,因為javascript在客戶端運行,不過我沒有做具體測試
<script language='javascript'>
linkarr = new Array();
picarr = new Array();
textarr = new Array();
var swf_width=318;
var swf_height=446;
var files = "";
var links = "";
var texts = "";
//這里設(shè)置調(diào)用標(biāo)記
linkarr[1] = "/chms/250.html";
picarr[1]? = "/uploads/allimg/090731/1140191960-0_lit.jpg";
textarr[1] = "桂峰釀豆腐";
linkarr[2] = "/chms/249.html";
picarr[2]? = "/uploads/allimg/090731/1139343635-0_lit.jpg";
textarr[2] = "香葉烏鬃鵝";
linkarr[3] = "/chms/248.html";
picarr[3]? = "/uploads/allimg/090731/113SAS3-0_lit.jpg";
textarr[3] = "流溪大魚頭";
linkarr[4] = "/chms/247.html";
picarr[4]? = "/uploads/allimg/090731/112H5F35-0_lit.jpg";
textarr[4] = "呂田燜大肉";
linkarr[5] = "/chms/246.html";
picarr[5]? = "/uploads/allimg/090731/1126104312-0_lit.jpg";
textarr[5] = "呂田臘味";
for(i=1;i<picarr.length;i++){
? if(files=="") files = picarr[i];
? else files += "|"+picarr[i];
}
for(i=1;i<linkarr.length;i++){
? if(links=="") links = linkarr[i];
? else links += "|"+linkarr[i];
}
for(i=1;i<textarr.length;i++){
? if(texts=="") texts = textarr[i];
? else texts += "|"+textarr[i];
}
document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="'+ swf_width +'" height="'+ swf_height +'">');
document.write('<param name="movie" value="/images/bcastr3.swf"><param name="quality" value="high">');
document.write('<param name="menu" value="false"><param name=wmode value="opaque">');
document.write('<param name="FlashVars" value="bcastr_file='+files+'&bcastr_link='+links+'&bcastr_title='+texts+'">');
document.write('<embed src="/templets/images/bcastr3.swf" wmode="opaque" FlashVars="bcastr_file='+files+'&bcastr_link='+links+'&bcastr_title='+texts+'& menu="false" quality="high" width="'+ swf_width +'" height="'+ swf_height +'" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />'); document.write('</object>');
</script>
?
轉(zhuǎn)載于:https://www.cnblogs.com/pyman/archive/2009/06/17/1504749.html
總結(jié)
以上是生活随笔為你收集整理的flash新闻图片轮转————c#+数据库解决的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: document.body ,windo
- 下一篇: 一个webservice的初级例子