zoukankan      html  css  js  c++  java
  • 自学silverlight 5.0

    这是一个silverlight游戏:http://keleyi.com/keleyi/phtml/silverlight/

    接了个单子,非要用Silverlight 5来作一个项目,之前从来没接触过这东西,为了工作,硬着头皮也要上了。摸索了一晚上,大至整理出一些项目中需要的东西,以下作为初探记录:

    Silverlight 5与Javascript的交谈方式

    Silverlight 5属于客户端的东西,客户端的东西与服务器端交流,第一时间想到了基于javascript的ajax这个万能胶,所以先从Silverlight 5与Javascript交互方式入手。

    一、Silverlight 5发言,Javascript倾听

    从Silverlight 5里向Javascript发送程序运行请求。
    Silverlight 5端代码具体如下: 

    HtmlPage.Window.Invoke("Javascript函数方式", "传值-Oyiboy");

    通过以上代码可以直接在Silverlight 5里运行Javascript的脚本代码,并发送必要的数据出来。

    二、Javascript发言,Silverlight 5倾听

    Javascript使用ajax获取服务器端数据后发送给Silverlight 5,以达到Silverlight 5与服务器端的交互效果。
    Silverlight 5端代码具体如下:

    //设置值
    [ScriptableMember()]//这行是关键,必须有这个javascript才能请求到这个方法
    public void setVal(string D)
    {
    this.textView.Text = D;
    }
    //javascript主动要求返回值
    [ScriptableMember()]
    public string returnVal()
    {
    return this.textView.Text;
    }


    Html代码调整:
    需要在Silverlight 5插件的object代码内里添加以下参数设置句,以达到插件在加载后获取siliverlight对象。

    <param name="onLoad" value="siliverLoaded" />



    Javascript代码具体如下:

    //siliverlight对象
    var siliverlightObj = null;
    //上面那个HTML代码内设置的Silverlight 5 onLoad事件触发的函数
    function siliverLoaded(sender, args) {
    siliverlightObj = sender.getHost();
    }
    
    //以下代码中的.buttonSet和.buttonReu是两个带这些class的按钮,按钮就不详细写出来了
    //这个是运行Silverlight 5内的setVal方法
    $(".buttonSet").click(function () {
    siliverlightObj.Content.Main.setVal("javascript传入值-Oyiboy");
    })
    //这个是运行Silverlight 5内的returnVal方法
    $(".buttonReu").click(function () {
    alert(siliverlightObj.Content.Main.returnVal());
    });
    // hovertree.com

    以上几个方式,灵活使用的活基本上就完全解决了Silverlight 5与服务器端之间的交流,好吧,虽然这篇的东西的主题是Silverlight 5与Javascript,但最终目的还是Silverlight 5与服务器端的交互,反正ajax也不是什么新物,所以就跳过了。

    感想:通过Silverlight 5的对象siliverlightObj.Content.Main这一大窜东西来看,siliverlightObj还能作更多的事了,具体还要慢慢摸索了,如果以后有需要用到的话,还可能会出这个的说明文章吧,或许。

    补漏: 
    关于siliverlightObj.Content.Main中的Main是指在Silverlight 中app.xaml的Application_Startup事件中注册的访问名称,具体代码如下:

    private void Application_Startup(object sender, StartupEventArgs e)
    {
    this.RootVisual = new MainPage();
    System.Windows.Browser.HtmlPage.RegisterScriptableObject("Main", this.RootVisual);
    }



    从代码中可知,如果有多个xaml页的话,只要在这里注册不同的名称就可以引用不同xaml页内声明的Javascript方法了。 
    刚刚整理代码时在APP.xaml发现这句代码才想起把这个给漏了,今天补回。

    silverlight加密:http://keleyi.com/tool/md5.htm

    转自:http://hovertree.com/h/bjaf/silverlight5.htm

    silverlight数字时钟:
    获取 Microsoft Silverlight

    http://roucheng.cnblogs.com/

  • 相关阅读:
    pidgin的未认证解决办法
    题解【洛谷P1074】[NOIP2009]靶形数独
    题解【洛谷P1315】[NOIP2011]观光公交
    题解【BZOJ4145】「AMPPZ2014」The Prices
    题解【洛谷P4588】[TJOI2018]数学计算
    题解【洛谷P3884】[JLOI2009]二叉树问题
    题解【SP8002】HORRIBLE
    树链剖分学习笔记
    题解【洛谷P1807】最长路_NOI导刊2010提高(07)
    题解【洛谷P1995】口袋的天空
  • 原文地址:https://www.cnblogs.com/roucheng/p/silverlight.html
Copyright © 2011-2022 走看看