zoukankan      html  css  js  c++  java
  • 从真正的项目中学习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

  • 相关阅读:
    助教观察记录5(10/21-11/3)
    助教观察记录4(10/07-10/20)
    助教观察记录3(9/23-10/06)
    助教观察记录1(9/5-9/15)
    2019年春季学期《C语言程序设计II》课程总结
    2020软件工程个人作业06——软件工程实践总结作业
    软件工程第二次作业
    2020软件工程作业3
    2020软件工程作业01
    神必高考数学题乱写
  • 原文地址:https://www.cnblogs.com/salam/p/1818943.html
Copyright © 2011-2022 走看看