这种效果是模仿新浪军事频道首页的效果:
附件:
2009-06-11_131554.png 下面是代码,就一个方法
- public string ListImgNews(int count)
- {
- string sql = string.Empty;
- sql = "select top " + count.ToString() + " * from ImgNews";
- DataTable dt = db.GetDataSet(sql).Tables[0];
- string title = string.Empty;
- string url = string.Empty;
- string imgSrc = string.Empty;
- string html = string.Empty;
- if (dt.Rows.Count > 0)
- {
- html = "<!--焦点图区域开始 -->";
- html += "<!--焦点图开始-->";
- html += "<script type=\"text/javascript\">";
- html+="var focus_width=250;var focus_height=180;var text_height=21;var swf_height = focus_height+text_height;";
- int index = 0;
- for (int i = 0; i < dt.Rows.Count; i++)
- {
- index = i + 1;
- title += dt.Rows["Title"].ToString()+"|";
- url += Shellliu.Common.webRoot + Shellliu.Common.webPath + "Article/Read.aspx?articlecode=" + dt.Rows["ArticleCode"].ToString() + "|";
- imgSrc += Shellliu.Common.webRoot + Shellliu.Common.webPath + "Editor/ShowImg.aspx?id=" + dt.Rows["ImgID"].ToString() + "|";
- }
- title = title.Substring(0, title.Length - 1);
- url = url.Substring(0, url.Length - 1);
- imgSrc = imgSrc.Substring(0, imgSrc.Length - 1);
- html += "var pics='" + imgSrc + "';";
- html += "var links='" + url + "';";
- html += "var texts='" + title + "';";
- html+="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=\"'+ focus_width +'\" height=\"'+ swf_height +'\">');";
- html+="document.write('<param name=\"allowScriptAccess\" value=\"sameDomain\"><param name=\"movie\" value=\"pixview.swf\"><param name=\"quality\" value=\"high\"><param name=\"bgcolor\" value=\"#CCCCCC\">');";
- html+="document.write('<param name=\"menu\" value=\"false\"><param name=wmode value=\"opaque\">');";
- html+="document.write('<param name=\"FlashVars\" value=\"pics='+pics+'&links='+links+'&texts='+texts+'&borderwidth='+focus_width+'&borderheight='+focus_height+'&textheight='+text_height+'\">');";
- html+="document.write('<embed src=\"pixview.swf\" wmode=\"opaque\" FlashVars=\"pics='+pics+'&links='+links+'&texts='+texts+'&borderwidth='+focus_width+'&borderheight='+focus_height+'&textheight='+text_height+'\" 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\"/>');";
- html+="document.write('</object>');";
- html+="</script>";
- html += "<!--焦点图结束-->";
- html += "<!--焦点图区域结束 -->";
- }
- return html;
- }
复制代码把其中的参数解释一下:
1、传入参数count是你要显示的图片切换数量,返回组合后的字符串,赋给前台的控件,比如Label。
2、url是每张图片链接的文章地址,imgSrc每张图片的地址,可以是文件夹地址或显示图片页面的地址,title是图片下方显示的文章标题。
3、下面三行代码实现从数据库将图片流或图片路径和对应的文章地址等参数一并提出来,这里用了一个视图ImgNews实现这所有的相关表连接查询。
- string sql = string.Empty;
- sql = "select top " + count.ToString() + " * from ImgNews";
- DataTable dt = db.GetDataSet(sql).Tables[0];
复制代码4、这三个变量
var focus_width=250;var focus_height=180;var text_height=21;分别为图片的宽度、高度和图片文章标题的文字高度;
5、另外下载附件将里面的两个文件:pixview.fla和pixview.swf放到和你要显示图片新闻页面的同级目录下即可。(文/
拼吾爱程序人生)
源码下载: