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


    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[i].innerHTML = "";
                g_viewElements.FeedItems[i].href = "";
                g_viewElements.FeedItems[i].innerText = "";
                g_viewElements.FeedItems[i].setAttribute("name", "");
                g_viewElements.FeedItems[i].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 onmousewheel="mouseWheeNavigate();" >

    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 onload="Initialize();"   style=" margin:0; 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");
            }

    冯瑞涛
  • 相关阅读:
    window 安装使用npm
    php 身份证验证类
    php nl2br 将 变成<br />
    win10 system guard运行时监视器,关闭服务
    PHP7 引入的“??” 和“?:”的区别
    git 本地删除修改文件后从远程拉取
    深入解读阿里云Redis开发规范
    阿里云Redis开发规范
    Centos7 安装docker
    api-doc-php
  • 原文地址:https://www.cnblogs.com/finehappy/p/1523197.html
Copyright © 2020-2023  润新知