zoukankan      html  css  js  c++  java
  • 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>


     

  • 相关阅读:
    Oracle Instance
    第03章-VTK系统概述(1)
    二叉查找树BST----java实现
    [Golang] 从零開始写Socket Server(2): 自己定义通讯协议
    linux之SQL语句简明教程---LIKE
    spring mvc 入门示例
    MyBatis与Spring集成
    MyBatis 一对一关联查询
    MyBatis CRUD Java POJO操作
    eclipse xml自动提示
  • 原文地址:https://www.cnblogs.com/pyman/p/1504749.html
Copyright © 2011-2022 走看看