Silverlight是微软正在推广的专门针对Flash的一个浏览器插件,被众多人誉为“Flash”杀手,但从我了解的来看,Silverlight要在短期内打败Flash,并不会有那么容易。
1、跨域读取数据的问题
基于安全考虑,浏览器插件和脚本都是不可以跨域的,Silverlight亦是如此(Silverlight在读取视频文件时可以跨域)。Flash只需在需要跨域的根域下放置一个XML文件即可轻松搞定跨域问题,而Silverlight则需要通过WebService来解决,如果要用WebService,Flash同样也可以随意跨域了。
2、动画制作与设计功能不够强大
Flash在这个方面占有绝对优势,无论从动画设计还是动画编程来说,无论从轻松易用和复杂程度来说Silverlight远远不及Flash。虽然Silverlight可以利用面向对象的C#来进行编程,而AS 3也已经完全成为一种面向对象的编程预言,其语法结构与C#非常类似,Silverlight在这个方面已经没有太多的优势。
从微软官方提供的例子来看,Silverlight更多用于开发一些动态多媒体应用,而不是动画,的确,Silverlight在对多媒体方面的支持比Flash更强,因为Silverlight已经内嵌了Windows Media Player的解码器,使得Silverlight的体积从1.0版的不到2M增加到1.1 Alpha版的将近5M。
3、开发调试太难
Silverlight目前还没有很好的调试方法,也许是因为我没有找到,现在调试Silverlight比调试JavaScript还难……好歹Flash还能trace,实时监控运行结果。
4、Silverlight发布不够简洁
要在网上发布一个Silverlight并不像Flash那样简洁。Flash发布时有一个swf文件和一个HTML文件就行了,甚至有时候HTML都可以省略,而Silverlight则需要有几个JS文件,一个HTML文件,至少一个XAML文件,还有编译后的目录等。发布后的swf可以单独拿出来播放,而Silverlight则需要一个包含众多文件的文件夹。
Silverlight已是1.1 Alpha,但是仍然不支持中文,仍然不支持右键菜单,仍然不支持Firefox等浏览器……Silverlight还有很长的路要走……
dasd