自学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对象。
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事件中注册的访问名称,具体代码如下:
{
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数字时钟:
自学silverlight 5.0的更多相关文章
- 未找到导入的项目“C:\Program Files\MSBuild\Microsoft\Silverlight\v5.0\Microsoft.Silverlight.CSharp.targets”。
问题描述: 原先创建的Silverlight程序,后来系统重装了,再打开Silverlight程序时提示:C:\Users\yzg\Desktop\ocr\TJSilverlight\TJSilver ...
- Chrome浏览器V43版本号不支持silverlight 5.0的解决的方法
场景: 浏览器:chrome V43 插件:silverlight 5.0 操作系统:xp 问题: 自己开发silverlight站点在IE7和firefox中能正常打开,但在chrome中打开失败. ...
- [Silverlight 2.0 控制物体绕圆弧运行(C#初探篇)]
我自己写的第一个 Silverlight 2.0 程序 [Silverlight 2.0 控制物体绕圆弧运行(C#初探篇)] 程序运行时:小地球将绕着圆形轨迹做圆周运动. ...
- silverlight 4.0 的oob模式下,调用com通过wmi重启自身进程 killself
silverlight目前开发的应用,想做到系统内注销后自动重新启动下 sllauncher.exe ,实现方式是通过WMI的COM接口,获取到当前应用的执行命令行(CommandLine):并通过s ...
- Java自学手记——servlet3.0新特性
servlet3.0出来已经很久了,但市场上尚未普遍应用,servlet3.0有三个比较重要的新特性:使用注解来代替配置文件,异步处理以及上传组件支持. 支持servlet3.0的要求:MyEclip ...
- Win7 32位 遇到微软 silverlight 5.0安装失败的解决办法
刚开始,也是尝试下载安装,多次都是到99%,提示安装失败! 也查找了很多网上朋友分享的办法,还是不行.重新建立一个管理员账号,还是不行. 后来反复不断的测试,找到原因了,安装99%不成功,但是卸载程序 ...
- 添加Silverlight应用到HTML
Silverlight是跨浏览器,跨客户平台的浏览器插件,可以应用在Windows,Linux,Mac等平台.作为浏览器插件,Silverlight可以像Flash一样,很方便的嵌套在HTML页面中, ...
- [深入浅出WP8.1(Runtime)]Windows Phone 8.1和Silverlight 8.1的区别
1.2.2 Windows Phone 8.1应用程序模型 Windows Phone 8.1支持多种开发语言来开发应用程序,包括C#.VB.JavaScript和C++,那么本书的代码主要是采用C# ...
- Silverlight调用本机exe程序
要点: 1. Silverlight必须启用OOB模式,以及 Require elevated trust when running in-browser.参考下图设置 注:OOB模式,并不意味着必须 ...
随机推荐
- std::bind和std::function
std::bind 用于绑定一个函数,返回另外一种调用方式的函数对象 ,可以改变参数顺序 和个数,特别是在多线程的程序中,经常用它将函数进行包装,然后打包发送给工作线程,让工作线程去执行我们的任务. ...
- TargetProcess公司敏捷开发历程-开发实践篇
- IOS CopyPNGFile 异常问题解决
今天突然出现一个编译问题,搞了我好久,这里不多说了.直接整理出来,记录下来! 问题描述如下图: 出现:CopyPNGFile 异常错误,Command /Applications/Xcode.app/ ...
- fflua更新-增加对引用的支持
简介: fflua 发布了有段时间了,很多网友都用了,并且提供了一些很好的反馈.其中一个就是c++接口注册到lua中时,对引用的支持.这样使用起来更加方便. 原有方式: fflua 中注册c++的类用 ...
- 百度地图API 关键字模糊搜索
http://api.map.baidu.com/place/v2/search?q=广场®ion=汕头&output=json&ak=5E56A48675a5cd09a ...
- PowerDesigner 16.5对SQL Server 2012 生成数据库时"不支持扩展属性"问题
团队合作设计一套系统数据模型,创建了PDM后,Table.View.Store Procedure等都创建好了,且创建了多个Schema方便管理这些数据库对象,但Table.view.Column等对 ...
- Java8简明教程(转载)
ImportNew注:有兴趣第一时间学习Java 8的Java开发者,欢迎围观<征集参与Java 8原创系列文章作者>. 以下是<Java 8简明教程>的正文. “Java并没 ...
- 未知高度定宽div水平居中及垂直居中(兼容ie6及其他牛逼浏览器)
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- 华为 HG8245C 光猫 修改无线用户数限制+hw_ctree.xml 文件解密
这个操作方法是 从网上其他人提供的方法 和我一个朋友总结出来的,我只是负责整理,并实地在我自己的光猫上操作成功了 风险提示 :刷机有风险,操作需谨慎, 备份备份备份! 俺家,俺的新家是电信光纤接入, ...
- [转载]斐讯K2 A2版免TTL刷BREED不死Bootloader
1:路由器能正常上网,登陆进路由器 (默认密码admin) 2:用浏览器打开这个网址,如果默认ip不是192.168.2.1修改一下.打开后等待即可自动刷入breed. http://192.168. ...