一个能支持Flash的广告控件

这一篇文章是看别人的一个文档以后,自己模访写的;
在项目里面,我们就要用到这个控件了,解决了我们的问题,但是不是很难
不在这里多说,先看下面的代码吧:

using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Text;
namespace FlashAdRotator
 
{
     
/**//// <summary>
    
/// fpAdRotator 的摘要说明。
    
/// </summary>

    [DefaultProperty("Text"), 
        ToolboxData(
"<{0}:fpAdRotator runat=server></{0}:fpAdRotator>")]
    
public class fpAdRotator : System.Web.UI.WebControls.AdRotator
    
{
        
private bool isflashad;
       
private string imgurl;
        [Bindable(
true), 
          Category(
"Appearance"), 
            DefaultValue(
"")] 
        
/**//// <summary> 
        
/// 将此控件呈现给指定的输出参数。
        
/// </summary>
        
/// <param name="output"> 要写出到的 HTML 编写器 </param>

       protected override void Render(HtmlTextWriter output)
       
{
           
try
            
{
                
if(isflashad==true)
                
{
                    StringBuilder sb
=new StringBuilder("<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"");
                    sb.Append(
"codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0\" width={0} height={1}>");
                    sb.Append("<param name=\"movie\" value={2} />");
                    sb.Append(
"<param name=\"quality\" value=\"high\"/>");
                   sb.Append(
"<embed src={3} quality=\"high\"");
                   sb.Append(
"pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" width={4} height={5}></embed></object>");
                  StringBuilder outstr=new StringBuilder();
                   outstr.AppendFormat(sb.ToString(),
this.Width,this.Height,this.imgurl,this.imgurl,this.Width,this.Height);
                    output.Write(outstr);
              }

                
if(isflashad==false)
                
{
                    
//this.Render(output);
                   base.Render (output);
                }

           }

            
catch
            
{
               StringBuilder sb
=new StringBuilder("<table><tr>广告媒体不存在<td></td></tr><table>");
                output.Write(sb);
            }

        }

        
protected override void OnAdCreated(AdCreatedEventArgs e)
       
{
            
if(e.ImageUrl.ToLower().IndexOf(".swf")!=-1)
            
{
                
this.isflashad=true;
               
this.imgurl=e.ImageUrl;
            }

            
else
            
{
               
this.isflashad=false;
            }

        }

    }

}

以上就是主要的代码,
但是我也有很我的地方不是很明白,
如果其中的
 sb.Append("codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0\" width={0} height={1}>");


 sb.Append(
"pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" width={4} height={5}></embed></object>");
URL地址变了,那么就不能正常的显示出来Flash文件了
至于其中的URL地址变不变,我都得考虑的这个问题,
请高手指点
posted @ 2008-04-07 15:41  阳光追梦  阅读(1466)  评论(5编辑  收藏  举报
/*快速评论*/ #div_digg { position: fixed; bottom: 10px; right: 15px; border: 2px solid #ECD7B1; padding: 10px; width: 140px; background-color: #fff; border-radius: 5px 5px 5px 5px !important; box-shadow: 0 0 0 1px #5F5A4B, 1px 1px 6px 1px rgba(10, 10, 0, 0.5); } /** 不知道为什么页面加载完成时还读不到div_digg。可能也是动态生成的。 所以这里只能用定时器 不断的读取,当读取到了再给它动态添加快捷按钮 **/ //自定义 定时器[当元素加载完成是执行回调函数] function customTimer(inpId,fn) { if ($(inpId).length) { fn(); } else { var intervalId = setInterval(function () { if ($(inpId).length) { //如果存在了 clearInterval(intervalId); // 则关闭定时器 customTimer(inpId,fn); //执行自身 } }, 100); } } //页面加载完成是执行 $(function () { customTimer("#div_digg", function () { var div_html = "
\ 关注\  | \ 顶部\  | \ 评论\
"; $("#div_digg").append(div_html); //tbCommentBody }); });