flash新闻图片轮转————c#+数据库解决
因為需要,寫一個flash播放新聞輪轉的小程序,參考了網上一個例子,他是java做的,我是用c#,而且我的和他的思路有所不同1、聲明需要文件:pixviewer.swf 就可以了(以備調用需要),厲害吧
2、html內靜態代碼:
<script type="text/javascript">
<!--
?var interval_time=2;
?var focus_width=160;
?var focus_height=130;
?var text_height=0;//設置為0所以看不到標題
?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>
//參數說明
interval_time?設置圖片的停頓時間,單位為秒,為0則停止自動切換。
???如果沒有此參數,系統默認為5秒。
?
?focus_width?幻燈片的寬度,單位為像素。
?focus_height?幻燈片的高度,單位為像素。
?text_height?標題文字的高度,單位為像素,為0則不顯示標題文字。
?text_align?標題文字的對齊方式(left、center、right)
???如果沒有此參數,系統默認為center。
???注意:一定要有單引號,如'left'。
?swf_height?影片高度,即幻燈片高度與標題高度之和。
???相加之和最好是偶數,否則數字會模糊失真。
?pics??圖片地址,可以使用相對路徑也可以使用絕對地址。
???多個圖片用豎線“|”分割,最多9個!
???支持的文件格式為:.jpg、.gif、.png、.swf
?links??圖片對應的鏈接地址,可以使用相對路徑也可以使用絕對地址。
???多個鏈接地址用豎線“|”分割,最多9個!
???鏈接中不能包含“&”符號,否則會出錯。
?texts??圖片對應的標題文字,不能包含“&”符號,否則會出錯。
???多個標題文字用豎線“|”分割,最多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"//本地調試時候用
?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#中過程是,定義全局變量,得到變量值,定義好返回函數,返回函數,ok
//定義數組變量
?? 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;//判斷符合的記錄數目
??????????????? string sql_news_pic;//判斷要顯示的圖片數目,決定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++ )//得到數據庫中的的值
??????????????? {
??????????????????? 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();
}
//返回函數
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、這樣,就完美解決了從數據庫中讀取數據了,flash新聞圖片達到效果啦。
090731發現,如果在該前提下,更改var texts="||"為 var texts="1|2|3|4|5",文字12345均不能顯示(原來是text_height=0導致),惟有另想辦法,剛發現網上另有一播放器(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的區別,我調試的時候可麻煩多了。呵呵
對于默認字符串配置 高級設置
默認參數字符串 0xffffff:文字顏色|2:文字位置|0xff6600:文字背景顏色|60:文字背景透明度|0xffffff:按鍵文字顏色|0xff6600:按鍵默認顏色|0x000033:按鍵當前顏色|8:自動播放時間(秒)|2:圖片過渡效果|1:是否顯示按鈕|_blank:打開窗口
顏色都以0x開始16進制數字表示
文字顏色:題目文字的顏色
文字位置:0表示題目文字在頂端,1表示文字在底部,2表示文字在頂端
文字背景透明度:0-100值,0表示全部透明
按鍵文字顏色:按鍵數字顏色
按鍵默認顏色:按鍵默認的顏色
按鍵當前顏色:當前圖片按鍵顏色
自動播放時間:單位是秒
圖片過渡效果:0,表示亮度過渡,1表示透明度過渡,2表示模糊過渡,3表示運動模糊過渡
是否顯示按鈕:0,表示隱藏按鍵部分,更適合做廣告挑輪換?
影片自動播放參數:0表示不自動播放,1表示自動播放
影片連續播放參數:0表示不連續播放,1表示連續循環播
默認音量參數 :0-100 的數值,設置影片開始默認音量大小
控制欄位置參數 :0表示在影片上浮動顯示,1表示在影片下方顯示
控制欄顯示參數 :0表示不顯示;1表示一直顯示;2表示鼠標懸停時顯示;3表示開始不顯示,鼠標懸停后顯示
打開窗口:_blank表示新窗口打開。_self表示在當前窗口打開
而對于var texts="1a|2b|3c|4d|5e";字符串的獲取,則參照var pics='<%=get_pic()%>'方法,經過多次的調試和測試,終于完成一個終極版,很是開心。程序,真的要不斷改進,不斷發現和思考,當然,還需要行動哦.
最后說明一下:參考java做法,它在javascript中做,理論上應該是比在.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 = "";
//這里設置調用標記
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>
?
轉載于:https://www.cnblogs.com/pyman/archive/2009/06/17/1504749.html
總結
以上是生活随笔為你收集整理的flash新闻图片轮转————c#+数据库解决的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: document.body ,windo
- 下一篇: 一个webservice的初级例子