• 从真正的项目中学习Silverlight(MSN Entertainment项目源码下载)


      

      MSN Entertainment是用Silverlight开发的网站,是一个娱乐网站,涉及地图(BingMap)技术,图片展示技术,视频播放技术。它获取数据的方法比较特殊。使用StartupEventArgs来获取数据。

      StartupEventArgs是获取作为 Silverlight 插件的 HTML 初始化的一部分传递的初始化参数,在Html或aspx写入。下面我们看一下

    TwilightTourTestPage.html页面中

     function LoadSL() {
            var initialParams = "itinerary=http://entimg.msn.com/i/TwilightTour/NewMoon/Itinerary.xml";

            if (null != StartWindow) {
                initialParams += ",startwindow=" + StartWindow;
            }

            if (null != LocationIndex) {
                initialParams += ",locationindex=" + LocationIndex;
            }

            if (null != PhotoIndex) {
                initialParams += ",photoindex=" + PhotoIndex;
            }

            if (null != VideoIndex) {
                initialParams += ",videoindex=" + VideoIndex;
            }

            if (null != MoreVideoIndex) {
                initialParams += ",morevideoindex=" + MoreVideoIndex;
            }

            var holder = document.getElementById("SLHolder");

            holder.innerHTML = '<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="1025" height="640">' +
                                   '<param name="source" value="http://entimg.msn.com/i/TwilightTour/NewMoon/TwilightTourNewApology.xap"/>' +
                                   '<param name="allowHtmlPopupWindow" value="true" />' +
                                   '<param name="windowless" value="true" />' +
                                   '<param name="background" value="#0b0704" />' +
                                   '<param name="enableHtmlAccess" value="true" />' +
                                   '<param name="minRuntimeVersion" value="3.0.40624.0" />' +
            //'<param name="EnableGPUAcceleration" value="true" />' +
                                   '<param name="initParams" value="' + initialParams + '" />' +
                                   '<param name="autoUpgrade" value="true" />' +
                                   '<param name="splashscreensource" value="http://entimg.msn.com/i/TwilightTour/NewMoon/SplashScreen.xaml"/>' +
                                   '<a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40624.0" style="text-decoration:none"><img src="http://entimg.msn.com/i/TwilightTour/NewMoon/Images/nosilverlight.jpg" width="1025" height="640" alt="Get Microsoft Silverlight" style="border-style:none"/></a>' +
                                   '</object>' +
                                   '<iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;0px;border:0px"></iframe>';
        }

     

    在APP.XAML文件中
            /// <summary>
            /// 初始化数据
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e">获取作为 Silverlight 插件的 HTML 初始化的一部分传递的初始化参数</param>
            private void Application_Startup(object sender, StartupEventArgs e)
            {
                string xmlURI = e.InitParams["itinerary"];
                if (null == xmlURI)
                {
                    throw new ArgumentNullException("The initial parameter 'itinerary' was not set");
                }
                MainPage page = new MainPage(xmlURI);
                if (e.InitParams.Keys.Contains("startwindow"))
                {
                    page.StartWindow = Convert.ToInt32(e.InitParams["startwindow"]);
                }
                if (e.InitParams.Keys.Contains("locationindex"))
                {
                    page.LocationIndex = Convert.ToInt32(e.InitParams["locationindex"]);
                }
                if (e.InitParams.Keys.Contains("photoindex"))
                {
                    page.PhotoIndex = Convert.ToInt32(e.InitParams["photoindex"]);
                }
                if (e.InitParams.Keys.Contains("videoindex"))
                {
                    page.VideoIndex = Convert.ToInt32(e.InitParams["videoindex"]);
                }
                if (e.InitParams.Keys.Contains("morevideoindex"))
                {
                    page.MoreVideoIndex = Convert.ToInt32(e.InitParams["morevideoindex"]);
                }
                base.RootVisual=(page);

            }

      

    大家可以看到,在Silverlight启动时读取Html页中的信息初始化参数。

    演示地址:http://msntwilight.com/

    项目源代码地址:https://files.cnblogs.com/salam/TwilightTour.rar

  • 相关阅读:
    hdu2083
    斐波那数
    hdu2000~hdu2099
    hdu2070
    hdu2071
    hdu2095
    TSINGSEE青犀视频云边端架构视频直播点播平台/人脸识别系统EasyDSS 如何开启debug 日志?
    RTMP协议视频直播点播智能分析平台EasyDSS如何增加Stream模块实现TCP代理?
    RTMP推流平台/视频直播点播分析平台/人脸识别系统EasyDSS如何实现RTMP负载均衡?
    关于视频智能分析平台人脸识别/车牌识别系统EasyDSS登录及直播点播的安全防盗链验证说明
  • 原文地址:https://www.cnblogs.com/salam/p/1818943.html
Copyright © 2020-2023  润新知