我的Flash控件开发第二天

今天的目的:编写Flash控件的三个属性,宽度, 高度,Url地址

1.昨天中我们提到了VS2005给我们的默认代码,我们现在来修改下.首先去掉下面的这个text属性段

 

ContractedBlock.gif ExpandedBlockStart.gif Code
        [Bindable(true)]
        [Category(
"Appearance")]
        [DefaultValue(
"")]
        [Localizable(
true)]
        
public string Text
ExpandedBlockStart.gifContractedBlock.gif        
{
            
get
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                String s 
= (String)ViewState["Text"];
                
return ((s == null? String.Empty : s);
            }


            
set
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                ViewState[
"Text"= value;
            }

        }

2.我们开始写三个属性,这里我直接贴入代码:

 

ContractedBlock.gif ExpandedBlockStart.gif Code
        #region 控件的三个必须字段
        
/// <summary>
        
/// 编写flash控件需要的属性:flashWidth,flashHeight,flashUrl
        
/// </summary>
        private int flashWidth = 246;
        
private int flashHeight = 89;
        
private string flashUrl = "flash.swf";
        
#endregion

        
#region 控件的宽度字段
        
/// <summary>
        
/// 控件不需要绑定数据源,故Bindable特性设置为false
        
/// 编写宽度属性相应的set get方法,加入特性
        
/// set部分的if判断修改与2008年10月31日下午
        
/// set部分的判断参考《道不远人》p95
        
/// </summary>
        [Category("Appearance")]                                      //属性显示到Appearance类别的属性视图下面
        [DefaultValue("246")]                                         //默认值为100
        [Description("flash文件的宽度")]                              //属性的描述文字        
        
//对于.NET框架内建的基础数据类型,他们都有早已定义好的Convert,所以,去掉此特性也可以
        
//此部分注释掉,修改时间:2008年10月31日下午
        
//参考<<道不远人>>p103
        
//[TypeConverter(typeof(uint))]                               //这里特性是为了支持设置时智能标记的类型转换,如果没有这个会报错:UInt32对象无法转化为WebControls.Unit类型
        public int FlashWidth
        {
            
get
            {

                
object obj2 =ViewState["flashWidth"];
                
if (obj2 != null)
                {
                    
return (int)obj2;
                }
                
else
                {
                    
return this.flashWidth;
                }
            }
            
set
            {
                
if ((value > 1024|| ((int)value < 0))
                {
                    
throw new Exception("按照常理来说:一个flash文件的宽度不会超过1024吧?\n如果您对本控件有意见,讨论QQ:422322998");
                }
                
this.ViewState["flashWidth"]=value;
            }
        }
        
#endregion

        
#region 控件的高度字段
        
/// <summary>
        
/// 2008年10月31日下午加入set访问器的if判断
        
/// 本if判断参考《道不远人》p95
        
/// 编写高度性相应的set get方法,加入特性
        
/// </summary>
        [Category("Appearance")]                                      //属性显示到Appearance类别的属性视图下面
        [DefaultValue(89)]                                         //默认值为100
        [Description("设置flash文件的高度")]                              //属性的描述文字        
        
//[TypeConverter(typeof(Int32Converter))]                              //这里特性是为了支持设置时智能标记的类型转换,如果没有这个会报错:UInt32对象无法转化为WebControls.Unit类型
        public int FlashHeight
        {
            
get
            {
                
object obj2=ViewState["flashHeight"];
                
if (obj2 != null)
                {
                    
return (int)obj2;
                }
                
else
                {
                    
return this.flashHeight;
                }
             }
            
set
            {
                
if ((value > 1024|| (value < 0))
                {
                    
throw new Exception("按照常理来说:一个flash文件的高度不会超过1024吧?\n如果您对本控件有意见,讨论QQ:422322998");
                }
                
this.ViewState["flashHeight"= value;
            }
        }
        
#endregion

        
#region 控件的Url字段
        
//编写Url性相应的set get方法,加入特性
        
//加入UI类型编辑器支持
        /// <summary>
        
/// UrlProperty("*.swf")此特性10月31日中午加入
        
/// </summary>
        [Category("Appearance")]                                      //属性显示到Appearance类别的属性视图下面
        [DefaultValue("flash.swf")]                                         //默认值为100
        [Description("flash文件的Url")]                              //属性的描述文字
        [Editor(typeof(SwfUrlEditor), typeof(System.Drawing.Design.UITypeEditor))]        
        
//[TypeConverter(typeof(StringConverter))]                                 //这里特性是为了支持设置时智能标记的类型转换,如果没有这个会报错:UInt32对象无法转化为WebControls.Unit类型
        public string FlashUrl
        {
            
//利用return方法返回值
            
//字符串函数判断url地址前缀是否为~/,如果是,则去掉前缀,并返回。
            
//用StartsWith方法来确认字符串是否以~/开头
            get
            {
                
object o = ViewState["flashUrl"];
                
if (o != null)
                {
                    
string strUrl=(string)o;
                    
if (strUrl.StartsWith("~/"))
                    {
                        strUrl 
= strUrl.Substring(2);
                    }
                    
return strUrl;
                }
                
else
                {
                    
return this.flashUrl;
                }
            }
            
set
            {
                
this.ViewState["flashUrl"= value;
            }
        }
        
#endregion

转载于:https://www.cnblogs.com/myzxarp/archive/2008/11/02/1324729.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值