7月10日,微软将推出Silverlight 3和 Expression Studio3设计平台,在新版本发布之前,我们来看一看Silverlight 3的新特性。
Video/Audio
Silverlight除VC-1外还支持H.264视频格式。这是YouTube等使用的新兴业界标准格式,并在很多设备上有硬解码。Silverlight也支持AAC音频。二者都以MP4容器格式实现(如.MP4或.M4A格式文件)。
另外还支持F4v, Adobe的高清格式. 可惜的是在3.0这个版本中Silverlight还不支持Camera. 听说下一个版本会加入, 大家还需等待一年.
GPU Acceleration
这是Silverlight 3运行时中opt-in的特性,in-browser和out-of-browser都可以。在HTML中的Silverlight tag中,添加一个EnableGPUAcceleration=true参数来启用GPU加速。
3D Support
Silverlight 3带有透视3D,对于一个父元素,你使用一个Projection attached property,如:
<Border.Projection>
<PlaneProjection x:Name=”p3” RotationY=”-30” />
</Border.Projection>
这个perspective 3D也只是将平面对象转换成立体的对象, 而非真正的3D渲染引擎. 而Silverlight中还没出现Flash中的pv3d一类的3D engines.
Animation Easing新加入了很多easing的function, 和Flash里的Tween类似.
Custom Dialogs
Silvelright 3现在支持SaveFileDialog。出于安全原因,我们不返回路径给开发者,相反,你可以从结果中打开文件:
mySaveFileDialog.Show();
if (mySaveFileDialog == true)
return mySaveFileDialog.OpenFile();
关于上传下载FlashPlayer10有一些新的更新. 另外我觉得如果禁止修改的, 打开文件也可以加上.
Effects
Silverlight 3中引入的Effects提供低级手段来影响视觉效果。我们内置提供阴影和模糊两个效果,你也可以创建自己的效果。自定义效果以HLSL Shaders来实现——用DirectX SDK工具编译成byte code供Silverlight 3使用。Shaders允许开发者在UI元素渲染前修改每个像素。
如果Silverlight也支持bitmapdata的话, 那么Effects的加入会对它的绘图功能提高很多.
Pixel和Media APIs
你现在可以从位图中读/写像素。这个功能有两种使用方式:in-memory位图或保存visual到位图。同时支持的还有raw audio/video API实现动态声音生成,自定义视频codec,或者alpha video channels。
in-memory位图或保存visual到位图, 这个就是微软学习FlashPlayer的bitmap的方式加入的新功能, 效率问题还没有测试.
另外动态声音生成在新版本的FlashPlayer 10 也加入了.
Local Messaging
在多个Silverlight插件间传递消息曾是个挑战。现在我们支持类似”命名管道”的消息,不但垮同一网页上的对象,甚至跨多浏览器的多个Silverlight实例。例如一个Chrome实例中的Silverlight和Firefox中的另一个实例通信。
Flash中用localConnection来实现, 另外Flash中的localConnection还有垃圾收集的特别功效, 这点微软好像没有加入哟 :).
Out of Browser
通过一个manifest对每个应用程序启用(标准Silverlight 3模板中就有这个段落,你只要uncomment它)。一个用户可以右击Silverlight内容,或者点击应用里的一个按钮来启动Silverlight out-of-browser应用。
这个功能很不错, 可以让用户将web应用部署到本地, 增加用户对当前web应用的依赖. 不知道Adobe会不会加上, 其实就是在它的swf文件和AIR文件中做一下关联, 在发布的时候同时发布两个文件, 然后用户可以将这两个文件同时部署到Server side上. 就类似Flex中的view source功能一样.
Tooling
Silverlight 3工具会包含新的压缩算法,XAP文件的大小会缩小10~30%。