我觉得浏览器的最主要的3个功能,第一个就是发起和接收http连接,第二解析html,渲染页面效果,第三,集成脚本语言,控制页面元素。第一个功能发起http连接是比较容易的,但是第二个将那些与定义好的tag解析成页面,这就是一个非常核心的技术,我认为也是浏览器开发的一个难点。而silverlight的一个最核心的技术也是这个:将XAML解析,并渲染到界面。不过有一点浏览器的定位很复杂,相对,绝对,浮动,页面版式的变动特别复杂,而silverlight只是用了像素定位,那就简单多了。类似html,XAML把Carvas作为了根节点,然后有按钮标签,文本标签等等,类似于html.还有就是在XAML中调用外部javascript的方法很简单:例如在silverlight的一个媒体元素上,有这样一段标签:
| 以下是引用片段: <MediaElement x:Name="ouch5" Source="assets/ouch5.wma" AutoPlay="false" Width="0" Height="0" MediaEnded="javascript:SoundEnded"/> 看看媒体元素的MediaEnded事件是这样直接调用了外部的js函数,再来看看这段js函数是怎样写的: function SoundEnded(sender,args) { sender.stop(); sender.position = "00:00:00"; } 这种调用js的机制就和在button的 onclick事件里的没多少区别,并且silverlight更加趋向于.net中的事件处理机制,有发送者对象和事件参数,感觉非常完美。
然后我们再来看看javascript是怎样操作silverlight中的对象的。
|

