六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 82|回复: 0

Windows Gadget 开发常用的几个系统方法及设置

[复制链接]

升级  42.33%

101

主题

101

主题

101

主题

举人

Rank: 3Rank: 3

积分
327
 楼主| 发表于 2013-2-7 16:36:54 | 显示全部楼层 |阅读模式
1.设置窗口关闭方法委托
  System.Gadget.onSettingsClosing = settingsClosing;
  function settingsClosing(event)   
{     
    if(event.closeAction == event.Action.commit)     
    {     
        saveSettings();     
    }     
    else if (event.closeAction == event.Action.cancel)     
    {     
    }     
    event.cancel = false;     
}
  2.写入系统设置
  this.rssFeedPath = System.Gadget.Settings.read("rssFeedPath");
  3.读取系统设置
  System.Gadget.Settings.write("rssFeedPath", _feedPath);
  4.参数初始化
  function clearViewElements()   
{     
    positionNumbers.innerText = "";     
    for(i=0; i < 4; i++)     
    {     
        if ( g_viewElements !== null )     
        {     
            g_viewElements.FeedItems.innerHTML = "";     
            g_viewElements.FeedItems.href = "";     
            g_viewElements.FeedItems.innerText = "";     
            g_viewElements.FeedItems.setAttribute("name", "");     
            g_viewElements.FeedItems.setAttribute("localId", "");     
        }
          eval("FeedItemName"+i).innerHTML = "";   
        eval("FeedItemName"+i).style.backgroundColor = "";     
        eval("FeedItemName"+i).innerText = "";     
        eval("FeedItemName"+i).setAttribute("title","");
          eval("FeedItemDate"+i).innerHTML = "";   
        eval("FeedItemDate"+i).style.backgroundColor = "";     
        eval("FeedItemDate"+i).innerText = "";     
        eval("FeedItemDate"+i).setAttribute("title","");
          eval("FeedItemLink"+i).style.textOverflow = "";   
        eval("FeedItemLink"+i).style.overflow = "";     
        eval("FeedItemLink"+i).style.whiteSpace = "";     
        eval("FeedItemLink"+i).style.width = "0px";     
    }     
}
  5.调试输出
  System.Debug.outputString("Start Polling : Pull feeds queued up in bursts"); //DEBUG CODE
  6.启动一个定时刷新
  function startTimer()   
{     
    if(g_timerFlag)     
    {     
        stopTimer();     
        g_timer = setInterval(setNextViewItems, g_timerMilliSecs);     
    }     
}
   
  setTimeout(loadData, 1000);
   
  7.停止一个定时刷新
  function stopTimer()   
{     
    if(g_timerFlag)     
    {     
        clearInterval(g_timer);     
    }     
}
   
  8.指定设置页面文件
   
   
  System.Gadget.settingsUI = "settings.html";
   
  9.打开Flyout 窗口
  System.Gadget.Flyout.show = true;
   
  10.键盘按键捕获
  <body onkeydown="keyNavigate();" >
  function keyNavigate()   
{     
    switch(event.keyCode)     
    {
          case 38:   
        case 104:     
            setPreviousViewItems();     
            break;     
        case 40:     
        case 98:     
            setNextViewItems();     
            break;     
        case 32:     
        case 13:     
            if(event.srcElement.id == "buttonLeftNarrator")     
            {     
                setPreviousViewItems();     
            }     
            else if(event.srcElement.id == "buttonRightNarrator")     
            {     
                setNextViewItems();     
            }     
            break;     
        case 27:     
            hideFlyout();     
            break;     
    }     
}
   
  11.鼠标滑轮
  <body  >
   
  function mouseWheeNavigate()   
{     
    if( g_returnFeed == null )     
        return;
      var headlineCount = g_returnFeed.feedItems.length;   
    if(g_totalViewableItems < headlineCount)     
    {     
        headlineCount = g_totalViewableItems;     
    }     
    if(event.wheelDelta < -20)     
    {     
        setNextViewItems();     
    }     
    if(event.wheelDelta > 20)     
    {     
        setPreviousViewItems();     
    }     
}
   
  12 获取Flyout 文件对象,并设置内容
  var flyoutDiv = System.Gadget.Flyout.document;
  flyoutDiv.getElementById("flyoutTitleLink").innerText = tempTitle;   
                flyoutDiv.getElementById("flyoutTitleLink").href = checkHref(g_feedURL);     
                flyoutDiv.getElementById("flyoutTitleLink").setAttribute("title", tempTitle);     
                flyoutDiv.getElementById("flyoutTitleLink").style.textOverflow = "ellipsis";     
                flyoutDiv.getElementById("flyoutTitleLink").style.overflow = "hidden";     
                flyoutDiv.getElementById("flyoutTitleLink").style.whiteSpace = "nowrap";
   
  13.窗口 停靠
  if(!System.Gadget.docked)   
        {     
            var backgroundToLoad = "url(images/item_hover_floating.png)";     
        }
   
  14. Flyout 窗口 文件设置
  System.Gadget.Flyout.file = "flyout.html";
   
  15.  显示设置页面的方法
  System.Gadget.onShowSettings = loadSettings;
   
  16. Gadget 是否可见
  System.Gadget.visibilityChanged = checkVisibility;
  function checkVisibility()   
{     
    isVisible = System.Gadget.visible;     
    if (!isVisible)     
    {     
        stopTimer();     
    }     
    if(isVisible)     
    {     
        startTimer();     
    }     
}
   
  17. 初始化配置集合
  System.Gadget.settingsUI = "settings.htm";                              // 设置Setting 页面   
System.Gadget.onShowSettings = procSettingsShowEvent;                   // set settings onshow method     
System.Gadget.onSettingsClosed = procSettingsClosedEvent;               // set settings onclosed method
  // init dock/undock event methods   
System.Gadget.onUndock = procUndockEvent;                               // set gadget onundock method     
System.Gadget.onDock = procDockEvent;                                   // set gadget ondock method
  // init flyout event methods   
System.Gadget.Flyout.file = "flyout.htm";                               // set flyout page     
System.Gadget.Flyout.onShow = procFlyoutShowEvent;                      // set gadget flyout show event     
System.Gadget.Flyout.onHide = procFlyoutHideEvent;         // set gadget flyout hide event
  18. 简化开发的最好方法,是下载现有的Gadget,修改其内容实用,下面是地址。
  http://vista.gallery.microsoft.com/vista/SideBar.aspx?mkt=zh-cn
  http://vista.gallery.microsoft.com/vista/SideBar.aspx?mkt=en
   
  19. 如果Gadget中嵌入Flash
  1.要将投影效果去掉
  2. 添加透明属性
  if(typeof infosoftglobal == "undefined") var infosoftglobal = new Object();   
if(typeof infosoftglobal.FusionChartsUtil == "undefined") infosoftglobal.FusionChartsUtil = new Object();
  var FusionCharts = infosoftglobal.FusionCharts;
  this.addParam('Wmode', 'transparent');
  FusionCharts.prototype = {   
    setAttribute: function(name, value){   
        this.attributes[name] = value;   
    },   
    getAttribute: function(name){   
        return this.attributes[name];   
    },   
    addParam: function(name, value){   
        this.params[name] = value;   
    },   
    getParams: function(){   
        return this.params;   
    }
  }
             var params = this.getParams();   
            for(var key in params) {   
             swfNode += '<param name="'+ key +'" value="'+ params[key] +'" />';   
            }
  3.使用一个透明背景的Png 图片最背景,达到背景透明的效果,并设置四边框为0,如下
  <body    style=" margin:0; width: 200px; height: 200px; background-repeat:no-repeat; background:url(bgbk5.png);">
        function Initialize() {   
            try {   
                System.Gadget.settingsUI = "options.html";   
            } catch (e) { };
          }
  4.在重复加载一个Flash,数据源的时候,会有缓存的问题,简单的解决办法就是用时间拼装不重复的访问字符串,已达到每次访问都不一样的目的,避免缓存
  
   function updateChart(DOMId) {
              var strURL = "http://localhost:9999/Chart/Gallery/Data/Angular5.xml?time=a" + Date.prototype.Format("yyyyMMddhhmmss");   
            var myChart = new FusionCharts("http://localhost:9999/Chart/Charts/AngularGauge.swf", "myChartId", "200", "200", "0", "0");   
            myChart.setDataURL(strURL);   
            myChart.render("chartdiv");   
        }
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表