SilverLight开发基础答疑
5.
是否有相应的工具帮助我们开发基于SilverLight的作品,还是仅能使用记事本?
问题描述:虽然XAML语言是一个轻量级的语言,并且应用于SilverLight的XAML语言中的标签相对较少,但如果单纯使用记事本来撰写SilverLight应用仍然是一件复杂的事情,微软是否会提供相应的工具帮助我们开发基于SilverLight的作品呢?
解答:微软将会面向美工人员以及开发人员提供相应的开发工具,从而帮助更加快速的开发相应的应用。面向美工人员我们提供Expression
Design进行素材设计,提供Expression Blend进行交互设计,以下是Expression
Blend面向SilverLight所提供的项目类型(由于尚在开发期内,不保证在RTM时完全相同):
[attach]51270[/attach]
而面向开发人员,微软会为Visual Studio 2005提供相应的插件帮助他们开发Java
Script业务逻辑代码,也可以使用所见即所得的方式开发XAML表现层,该插件可以在SilverLight的SDK中安装。而面向Orcas,微软应该会集成该项目。
6. 使用SilverLight来播放音视频文件,是否需要客户端操作系统安装Windows
Media Player播放器?
问题描述:SilverLight作为一款跨平台、跨浏览器的解决方案,支持强大的视音频处理能力。其主要支持的视音频格式主要包括MP3、WMV以及WMA格式,我们知道在Mac机上并没有相应的Windows
Media Player播放器,那么如果要播放类似文件,需要先在操作系统上安装Windows Media
Player播放器?
解答:不需要,虽然目前的CTP版本的运行时仅仅只有1M左右,但在此运行时当中,已经包括了Windows
Media的解码技术,这也就意味着你不需要在客户端操作系统中安装任何的Windows Media
Player等软件,即可播放相应的视音频文件,并且在未来的版本中,微软还将提供DRM技术支持,帮助您进行版权保护功能。
7.
SilverLight只能支持Javascript语言吗?可否使用C#或者其它语言来编写应用程序?
问题描述:在微软先前发布的两个CTP版本的示例应用当中,均是使用Javascript来编写业务逻辑语言的。虽然微软曾经在很多地方提到过会推出支持使用C#来编写业务逻辑的版本,但有关细节一直没有披露。
解答:稍安勿躁,本月底在拉斯维加斯举办的MIX大会上,微软即将披露相关详细信息。我在这儿可以先稍微透露一下,在SilverLight
1.0版本中,仍然只支持Javascript,在1.1版本当中,将会支持C#等语言。MIX大会时将会发布1.0的Beta版,以及1.1的CTP版。
8. Silverlight为什么不支持中文?有没有别的途径可以解决这个问题呢?
问题描述:我相信凡是准备采用Silverlight技术或者正在使用Silverlight构建应用程序的开发者,很多人已经开始怨声载道了,为什么Silverlight不支持中文(严格来说,是中日韩等字体)?其实原因很简单,这是一个法律范畴的问题,因为每个字库都有其版权信息,而且大部分字库是不允许转移使用的(比如常见的将Vista中的微软雅黑字体复制到XP或者手机上使用应该是非法的)。
解决方案一:请参见http://blog.joycode.com/joy/archive/2007/04/06/100553.aspx中的第二项解答,即使用Glyph来代替TextBlock;但这种解决方案存在很多问题,即Glyph本身不支持换行等操作,意味着你只能把它当作标签字体来使用,而无法用其来显示正文。另外,每次浏览这个页面时,都需要下载完整的字体文件,请注意,仅微软雅黑字体(不含粗体部分)就有15M左右大小。虽然现在使用宽带的人员越来越多,但仍然是一个非常大的负担。
解决方案二:使用ODTTF文件,所谓的ODTTF文件,其实是XPS所带的嵌入式字体文件,这种字体会自动从原字体文件中提取所需要的字样,而不是简单的拷贝原字体的所有字样。操作方法如下:
首先使用Word或者写字板应用程序,使用您中意的字体输入你的Silverlight中所需要的文字;
然后在Word或者写字板当中选择“打印”功能,打印机选择Microsoft XPS Document Writer(在您安装了.NET
3.0 Framework)后会自动增加;
XPS Document Writer本身是一个打印到文件功能,在其文件选择框中选择文件路径,并且给出相应的文件名;
打印完成后,在文件浏览器中找到完成的XPS文件,并且将其后缀名由".xps"修改为".zip";(其实微软的好多文件格式目前都使用了ZIP格式,比如Office
2007中的DOCX、PPTX、XLSX等等,都可以将名字改为ZIP后缀名,并且使用WinZip或者其它文件压缩程序打开)
直接找到这个压缩文件包中的“\documents\1\resources\fonts”中的文件,并且将其提取出来,这个文件名大部分为一个GUID加一个ODTTF后缀名;
将提取出来的ODTTF文件再次使用ZIP格式打包成myfonts.zip文件,并且放在您的Silverlight应用程序的根目录中;
假设您的XAML中的TextBlock的名字为textBlock1,那么在其后端所跟的JS文件中使用Downloader控件进行修改,大体如下:
{
var control = sender.getHost();
var downloader = control.createObject("downloader");
downloader.addEventListener("Completed", "onCompleted");
downloader.open("GET", "myfonts.zip", true);//注意此处的myfonts.zip,根据您的实际情况进行更改
downloader.send();
}
function onCompleted(sender, eventArgs)
{
var myTextBlock = sender.findName("textBlock1"); //此处是TextBlock的名称
myTextBlock.setFontSource(sender);
myTextBlock.fontFamily = "Microsoft Yahei" ;//注意此处的字体名称,我这儿是使用的“微软雅黑”字体,您可以根据实际情况使用
myTextBlock.text = myTextBlock.text;
}
总结一下,这样的解决方案在目前应该是最有效的解决中文显示问题的,当然,在您使用部分字体时,您必须要注意一下相关的法律问题,是否取得了所使用的字体文件的跨平台授权。(该解决方案对于动态显示文本仍然无效)。
解决方案三:Silverlight产品团队目前正在致力于该问题,解决此问题目前主要的困难并不是技术问题,而主要是法律上的一些issues.
我已经为解决方案二编写了一个小型的Demo,如果您感兴趣,可以在留言中留下您的邮件,我可以发送给您。(由于本人工作繁忙,无法全部发送,所以我只会发送给前五位留下邮件地址的朋友,后来的朋友可以给这五位朋友写邮件索要)。
参考信息:
http://blogs.msdn.com/webnext/archive/2007/05/25/silverlight-font-embedding.aspx
http://wpf-e.spaces.live.com/blog/cns!2B248D261D0E0035!122.entry
【内容摘要】我们可以使用FontUri这种方式来嵌入字体,从而解决此种问题,根据当前版本的SDK文档中,我们可以看到,FontUri属性可以应用于Glyphs标签。
【关 键 字】网页互动 观点文章 SilverLight
【本文网址】http://static.chinavisual.com/storage/contents/2007/08/03/40220T20070803150616_2.shtml
|
|||||
|
|






