打印

构建一个简单的 Silverlight 应用程序

我们先来看一看 Microsoft Expression Blend,使用该工具创建一个 XAML 格式的非常简单的应用程序,以供 Silverlight 使用。要在 Blend 中创建 Silverlight 应用程序,请选择 File(文件)->New project(新建项目),此时会打开“New Project”(新建项目)对话框。请参见图 1。

图 1. 使用 Expression Blend 创建新的 Silverlight 项目

选择 OK(确定),即会创建一个新项目。该项目将包含一个默认 HTML 页面、该页面的一些 JavaScript 源代码、一篇 XAML 文档和该 XAML 文档的 JavaScript 源代码及 Silverlight.js。

Silverlight.js 包含用于下载和实例化 Silverlight 控件的代码。它作为 Silverlight SDK 的一部分提供给用户。

Default.html 是标准的 HTML 网页。该网页包含三个 JavaScript 脚本引用,分别指向 Silverlight.js、Default.html.js(其中包含特定于应用程序的用于安装 Silverlight 的代码)和 Scene.xaml.js(其中包含在 XAML 中定义的应用程序事件的事件处理程序)。

它被设计为一个独立的页面 (default.html),与实例化逻辑 (default.html.js)、设计 (Scene.xaml) 和事件代码 (Scene.xaml.js) 分开。不过,理论方面的探讨已经够多了,现在我们开始开发一个简单的应用程序。

创建供视频播放器使用的 UI

在项目中添加视频文件。为此,请右键单击屏幕右上方 Project Files(项目文件)窗口中的项目文件,然后选择 Add Existing Item...(添加现有项目)。

选择某个 WMV 文件并将其添加到项目时,项目浏览器中将显示该文件,同时在视图中添加了一个媒体元素。



现在即可运行您的项目,浏览器将启动并播放您的视频!

通过编辑 XAML 可以停止自动播放视频。您会看到 XAML 设计器右侧有两个选项卡:Design(设计)和 XAML。选择“XAML”选项卡,会打开 XAML 编辑器,如图 3 中所示。使用该编辑器为媒体元素编辑 XAML 文本,添加属性 AutoPlay=False。



图 3. 在 XAML 编辑器中编辑 XAML

现在,如果您运行该应用程序,会看到 Silverlight 内容虽然呈现了视频的第一帧,但并不播放。

在视频播放器中添加控件

为该应用程序添加两个文本块,文本内容分别为 Play 和 Stop,名称分别为 txtPlay 和 txtStop。完成后,XAML 应如下所示:
复制内容到剪贴板
代码:
<Canvas
   xmlns="http://schemas.microsoft.com/client/2007"
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
   Width="640" Height="480"
   Background="White"
   >
   
<MediaElement AutoPlay="False" x:Name="Movie_wmv" Width="320" Height="240" Canvas.Left="128" Canvas.Top="56" Source="Movie.wmv" Stretch="Fill"/>
   
<TextBlock x:Name="txtPlay" Width="72" Height="24" Canvas.Left="136" Canvas.Top="336" Text="Play" TextWrapping="Wrap"/>
   <TextBlock x:Name="txtStop" Width="80" Height="24" Canvas.Left="136" Canvas.Top="368" Text="Stop" TextWrapping="Wrap"/>
</Canvas>
接下来,为文本块在 XAML 中添加事件处理程序声明。为此,可以使用 MouseLeftButtonDown 属性声明单击鼠标的处理程序。在 txtPlay 文本块中,添加对 DoPlay 的事件处理程序;在 txtStop 文本块中,添加对 DoStop 的事件处理程序。完成后,XAML 应如下所示:
复制内容到剪贴板
代码:
<TextBlock x:Name="txtPlay" Width="72" Height="24" Canvas.Left="136"
      Canvas.Top="336" Text="Play" TextWrapping="Wrap"  
      MouseLeftButtonDown="javascript:DoPlay"/>
<TextBlock x:Name="txtStop" Width="80" Height="24" Canvas.Left="136"
      Canvas.Top="368" Text="Stop" TextWrapping="Wrap"
      MouseLeftButtonDown="javascript:DoStop"/>
现在,如果用户单击其中一个文本块,将触发一个事件,您可通过 JavaScript 功能捕获并处理该事件。

在 JavaScript 中处理事件

模板创建的 Scene.xaml.js 可用于在 JavaScript 中捕获并处理用户事件。由于您在 XAML 内指定了 DoPlay 和 DoStop 事件处理程序,因此应在此处付诸实施。相应的代码如下所示:
复制内容到剪贴板
代码:
function DoPlay(sender, eventArgs)
{
   var theHost = document.getElementById("SilverlightControl");
   var theMedia = theHost.content.findName("Movie_wmv");
   theMedia.Play();
}
function DoStop(sender, eventArgs)
{
   var theHost = document.getElementById("SilverlightControl");
   var theMedia = theHost.content.findName("Movie_wmv");
   theMedia.Stop();
}
在本例中,将 Silverlight 控件称为 SilverlightControl,将引用该控件的 JavaScript 变量称为 theHost。稍后查找媒体元素(在本例中称为 Movie_wmv)时,将用到上述名称。在项目中添加电影时,为您创建了此媒体元素,该元素的名称是根据电影名称命名的。因此,如果电影的名称是 Movie.wmv,则此媒体元素就称为 Movie_wmv。如果使用其他电影,则控件也会相应地采用其他名称。

该媒体元素有 Play 和 Stop 两个方法,分别用于启动或停止媒体播放。

由于存在对该媒体元素的引用,因而可以调用上述方法,电影将随之停止或启动,如图 4 中所示。



图 4. 运行应用程序

至此,您已构建了自己的第一个 Silverlight 应用程序!

(MSDN:Silverlight白皮书)

TOP

还是比较麻烦的 没有想flash简单
彻彻底底的免费资源站http://www.sr521.com
我的BLOG:http://shueiyuan.77169.com

TOP

引用:
原帖由 shueiyuan 于 2007-8-7 09:53 发表
还是比较麻烦的 没有想flash简单
工欲善其事,必先利其器。

接触久了就好了。

TOP

干什么用的?
mimiwang.net

TOP

这个初学应该比较难,对有过开发经验的转手应该比较快
http://www.qlili.com 个人站帮点啊

TOP

接触过ASP.NET的人入门应该很快,或者会用Flash也很容易上手

TOP

楼主大人。为何我的Expression Blend 新建项目时只有前WPF应用程序和WPF控件这两个选项啊? 没有Sliverlight 相关的两个选项?
我已经装了sliverlight 1.0了的。 请帮忙看看是什么问题。谢谢了。
怀才就像怀孕...

TOP

回复 #7 Civito 的帖子

你装的是最新版的Blend 2?现在开发工具版本比较乱-_-

最好按照这个先后顺序装:
1. 安装 .NET Framework 3.5 或者 VS 2008;
2. 安装Silverlight 1.0 或者Silverlight 1.1 Alpha Refresh;
3. 安装 Expression Blend 2 December Preview* (25 megabytes)。

另外,安装之前最好卸掉所有以前安装的版本,测试版本与以前不兼容是很正常的。

[ 本帖最后由 Fdream 于 2007-12-20 10:49 编辑 ]
http://ooboy.net 我只是我

TOP

谢谢Fdream的回复。我去试试。之前装的是expression studio 1.0中文版。和VS2005
怀才就像怀孕...

TOP

呵呵,不客气,貌似Blend 1.0不支持Silverlight项目开发,另外建议直接开始弄Silverlight 1.1吧,1.0完全就是个toy……
http://ooboy.net 我只是我

TOP

vs05只可以开发silverlight1.0.
使vs05支持sil开发方法如下:
1.确认VS05已安装SP1
2.安装Silverlight项目模板.在Silverlight 1.0 SDK中.
将SilverlightJSApplication.zip复制到<Documents>\Visual Studio 2005\Templates\ProjectTemplates\Visual C#目录下.

silverlight1.0只可以做WPF开发.
需要设计开发sl1.1安装vs08及blend2.

TOP