利用Silverlight插件在ASP_net页面中嵌入动画
Sliverlight 整理文档

Sliverlight 整理文档Sliverlight概述Microsoft silverlight 是一种跨浏览器跨平台的 .NET Framework 实现,用于 Web 生成和提供下一代媒体体验和丰富的交互式应用程序(RIA)。
Silverlight 统一了了服务器、Web 和桌面的功能。
统一了托管代码和动态语言声明性编程和传统编程以及windows Presentation Foundtion (WPF) 的功能。
Sileverlight 允许创建具有一下功能的最先进的应用程序:它是一种跨浏览器、跨平台的技术。
它在所常见的 Web浏览器中运行,包括Microsoft windows和AppleMac osx 上运行。
它由可在数秒内安装的很小的下载程序支持。
它对视频和音频进行处理。
它将视频品质调到各种环境:从移动设备到桌面浏览器以及720p HDTV 视频模式。
它包括用户可以直接在浏览器中操作(拖动、旋转、缩放)的足够清晰地图形。
它读取数据并更新显示内容,但是不通过刷新整个页面来打断用户。
应用程序可以在 web 浏览器中运行,你也可以配置应用程序,使用户可以在自己的计算机上运行该程序(浏览器外)。
Silverlight 的功能Silverlight 将多种技术组合到单个开发平台,可以允许你根据需要选择合适的工具和编程语言,功能如下:WPF和XAML。
Silverlight 包含WPF技术的一个子集,从而大大扩展了浏览器中用于创建UI的元素。
Silverlight 允许你创建沉侵式图形、动画、媒体、和其他的丰富的客户端功能,使基于浏览器UI远超单独使用 HTML提供的效果。
可扩展应用程序标记语言(XAML)提供用于创建元素的声明性语法。
对JavaScript的扩展。
Silverlight提供对浏览器脚本语言的扩展,可以控制浏览器UI,包括WPF元素。
跨浏览器支持,Silverlight可以在所有浏览器上自如运行。
ASP3.5新功能介绍

1 第1章VS 2008 IDE集成开发环境新功能介绍本章内容1.1 3.5技术蓝图概述1.2 3.5技术脉络1.3 VS 2008开发工具版本介绍1.4 VS 2008与VS 2005环境的共存1.5 VS 2008性能改进1.6 .NET Framework Multi-Targeting1.7 HTML设计画面的拆分视图1.8 CSS样式生成与管理工具1.9 JavaScript IntelliSense支持1.10 JavaScript Debug支持1.11 LINQ与O/R Mapping设计工具的支持1.12 组合管理C# 的using语句1.13 嵌套Master Pages的支持1.14 透明的IntelliSense模式1.15 标尺及网格线对WebForm窗体的设计辅助1.16 VS 2008重要Hot-Fix补丁程序1.17 各章示例文件名称列表第1章 VS 2008 IDE集成开发环境新功能介绍2本章将对 3.5及VS 2008进行技术总体说明,阐述 3.5技术脉络及定义,同时也对VS 2008开发工具的新功能做概括性介绍,讨论VS 2008如何能对 3.5进行更佳的辅助,让各位在最短的时间内,掌握 3.5与VS 2008的学习方向与精髓。
1.1 3.5技术蓝图概述若要用一张图简单诠释 3.5技术,则图1-1是祭司所描绘出的技术堆栈(Stack)。
在这张图中,各位可以清楚地看到, 3.5绝大多数的技术堆栈模块都沿用 2.0,再加入新一代的元素,包括了:C# 3.0、VB 9、LINQ、 AJAX 3.5内建、Silverlight 1.0 & 2.0 RIA支持,但新的部分“看起来”似乎不算多。
图1-1 3.5技术堆栈架构图乍看之下, 3.5似乎没推出太多的新东西,以书籍来看也不需要改写太多,就程序设计师而言,似乎只需坚守 2.0就够了,因为LINQ及C# 3.0(VB 9)不一定要用到,学不学新东西也无所谓。
C-开发WPFSilverlight动画及游戏系列教程1

//创建X轴方向动画
DoubleA nimatio n doubleA ni mati on = new DoubleA nimatio n(
Can vas.GetLeft(rect),
p.X,
new Durati on( TimeSpa n.F romMillisec on ds(500))
开发的FLASH。
转入正题,网上已经有很多关于如何创建WPF/Silverlight动画的教程,但是均为使用Blend工具 制作,或直接写在xaml代码内的动画,这样往往造成很多朋友误以为其实WPF/Silverlight不就是MS
的Flash?诚然,如果您真的像那些教程里说的去开发WPF/Silverlight程序,我个人觉得一点意义都没
</ Window>
这段代码我创建了一个名叫Carrier的Canvas(画布)容器布局控件,并设置它的尺寸为800*600,
背景银色,最后注册一个鼠标在它上面点击的事件。那么为什么要选择Canvas作为容器呢?因为Canvas
可以实现它内部的控件任意的绝对定位,可以很方便的处理物体的移动。
界面容器元素布局好了,那么接下来就动态创建物体对象了:
一条绝对可行的思路,至于如何处理这些复杂的算法,那是仁者见仁,智者见智了,或许您写的算法比
我的更好呢。
多余的话不多说了,最后来句发自肺腑的话吧:本系列教程的书写编辑花费作者很多心血,没有
功劳也有苦劳哇,所以请需要转载的朋友们用突出的字体或颜色标明在您的文章开头,您的大力支持是
鼓励我不断写下去的动力。
//创建Y轴方向动画
doubleA ni mati on = new DoubleA ni mati on(
1.1 WPF基础

二、知识准备: 3、WPF的组成结构
WPF由两个主要部分组成:引擎和编程框架。
二、知识准备:
3、WPF的组成结构 (1)WPF引擎
WPF引擎统一了开发人员和设计人员体验文档、媒体和 UI 的方式, 为基于浏览器的体验、基于窗体的应用程序、图形、视频、音频和文 档提供了一个单一的运行时库。WPF使得应用程序不仅能够充分利用 现代计算机中现有的图形硬件的全部功能,而且能够利用硬件将来的 进步。例如,WPF基于矢量的呈现引擎使应用程序可以灵活地利用高 DPI监视器,而无需开发人员或用户进行额外的工作。 同样,当WPF检 测到支持硬件加速的视频卡时,它将利用硬件加速功能。
二、任务分析: 1、WPF的开发环境是什么?
WPF从一开始就被微软公司设计为设计和开发分离形态,其专业的 动画和美工设计部分使用Blend工具,普通界面和代码设计部分使用 Visual Studio。两个工具可以相互合作完成一个综合任务制作。
因此,部署WPF的开发环境我们至少需要安装这两个工具软件。
二、知识准备:
4、WPF和Silverlight的关系 (1)什么是Silverlight
对于开发设计人员而言,Silverlight是一种融合了微软的多种技术 的Web呈现技术。它提供了一套开发框架,并通过使用基于向量的图 像图层技术,支持任何尺寸图像的无缝整合,对基于asp .net、AJAX在 内的Web开发环境实现了无缝连接。Silverlight使开发设计人员能够更 好的协作,有效地创造出能在Windows和Macintosh上多种浏览器中运 行的内容丰富、界面绚丽的Web应用程序——Silverlight应用程序。
Silverlight 2.5D RPG游戏技巧与特效处理:(十九)基于WCF的注册与登录

最后还剩下游戏入口部分,Silverlight是客户端插件,因此首选WCF作为它与服务器端数据库的桥接。
撇去UI方面华丽的动态角色创建与选择不再多说,本节的重点便是在教程Demo的基础上整合进基于WCF的注册与登陆等操作,使之最终成为一款相对完整而五脏俱全的RPG作品。
依旧钟情于LINQ,因此LINQ to SQL成为我操作数据库的首选。
强烈建议大家首先参考这篇文章:数据库LINQ TO SQL在Silverlight中的应用(WCF),其中的所有细节都已阐述得相当详细。
如果你的电脑中存有之前的Demo源码,那么接下来你可以按照下面的步骤跟着我一步步从零开始搭建游戏的登陆部分,真真切切的体会WCF技术在Silverlight中的常规应用。
第一步:依照游戏中角色注册、创建、相关信息及登录等需求设计数据库,并编写好相应可能会用到的增删改查等存储过程(本节Demo源码中附带了名为FS3.sql的数据库文件,表和存储过程都在其中)。
第二步:在Silverlight的寄主Web项目中右键->添加新项目->LINQ to SQL映射类,这里我取名为L2S.dbml:第三步:打开VS视图中的服务器资源管理器,右键添加SQL连接到FS3(SQL版本最好2005以上)后将其中的表和存储过程等均拖到L2S.dbml的设计窗口中形成大家再熟悉不过的映射:第四步:此时便可编写WCF操作类了,在Silverlight的寄主Web 项目中右键->添加WCF服务,取名为WCFService.svc:需要特别注意的是带返回类型的存储过程需要修改其相应属性为表实体,否则后面的逻辑查找不到:第五步:编写具体操作逻辑,搞过WCF开发的朋友此处可完全忽略,超级简单;没搞过的也很容易看懂,具体就不多说啦,直接列代码:[ServiceContract(Namespace = "")][AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityR equirementsMode.Allowed)][ServiceBehavior(IncludeExceptionDetailInFaults = true)]public class WCFService {[OperationContract]public void DoWork() { }///<summary>///添加新用户(添加过程中字符型超出限制长度则自动截取)///</summary>///<returns>新用户的ID,0则表示失败</returns>[OperationContract]public long InsertUser(string userName, string password, string real Name, string idCard, string eMail, string address) {using (L2SDataContext dc = new L2SDataContext()) {return Convert.ToInt64(dc.p_InsertUser(userName, password, r ealName, idCard, eMail, address, "", "").ReturnValue);}}///<summary>///用户资料验证///</summary>///<param name="userName">用户名</param>///<returns>0表示不存在</returns>[OperationContract]public int CheckUserExist(string userName) {using (L2SDataContext dc = new L2SDataContext()) {return dc.p_CheckUserExist(userName);}}///<summary>///用户登陆验证///</summary>///<param name="userName">用户名</param>///<param name="password">密码</param>///<returns>0表示不匹配</returns>[OperationContract]public int UserLogonValidate(string userName, string password) { using (L2SDataContext dc = new L2SDataContext()) {return dc.p_CheckUserLogon(userName, password);}}///<summary>///检查角色是否已存在///</summary>///<param name="name">角色名</param>///<returns>0表示不存在</returns>[OperationContract]public int CheckRoleExist(string name) {using (L2SDataContext dc = new L2SDataContext()) {return dc.p_CheckRoleExist(name);}}///<summary>///检查用户创建的角色数量///</summary>///<param name="userName">用户名</param>///<returns>角色数</returns>[OperationContract]public int GetUserRoleNum(string userName) {using (L2SDataContext dc = new L2SDataContext()) {return dc.p_GetUserRoleNum(userName);}}///<summary>///添加新角色///</summary>///<returns>新角色的ID,0则表示失败</returns>[OperationContract]public long InsertRole(string userName, string name, byte avatar, by te sex, byte occupation, byte roleLevel, long experience, long mapID, strin g lastIP, string remarks) {using (L2SDataContext dc = new L2SDataContext()) {return Convert.ToInt64(dc.p_InsertRole(userName, name, avata r, sex, occupation, roleLevel, experience, mapID, lastIP, "").ReturnValue); }}///<summary>///根据用户名获取该用户的所有角色///</summary>///<param name="userName">用户名</param>///<returns>创建的所有角色</returns>[OperationContract]public List<Role> GetRoleByUserName(string userName) {using (L2SDataContext dc = new L2SDataContext()) {return dc.p_GetRoleByUserName(userName).ToList<Role>();}}///<summary>///删除角色记录///</summary>///<param name="roleName">角色名</param>///<returns>失败0,成功1</returns>[OperationContract]public int DeleteRole(string roleName) {using (L2SDataContext dc = new L2SDataContext()) {return dc.p_DeleteRole(roleName);}}}复制代码第六步:也是最后一步,在RPGEffectsDemo项目中右键添加服务引用(Service References),然后检索到WCFService.svc完成即可。
插件的网页滚动平滑和动画效果如何设置

插件的网页滚动平滑和动画效果如何设置嘿,朋友!要说这插件的网页滚动平滑和动画效果的设置,其实还真有点门道。
咱先来说说为啥要弄这个滚动平滑和动画效果。
就像我之前有一次,逛一个网页,那卡顿的滚动,简直就像坐了一辆颠簸的破车,心情瞬间就不好了。
但要是有了平滑的滚动和吸引人的动画效果,感觉就像是在云端漫步,轻松又愉快,能让人更愿意在这个网页上多停留一会儿。
首先,你得选对插件。
现在市面上各种各样的插件多得让人眼花缭乱,就像在菜市场挑菜一样。
比如说 SmoothScroll 这个插件,不少人都觉得挺好用。
选好了插件,安装也得小心。
别一股脑儿乱点,得看清每一个步骤,就像走路要看清脚下的路,不然一不小心可能就踩坑里了。
安装完之后,一般都会有个设置的入口,有的在浏览器的插件管理页面,有的在网页的某个角落藏着,你得仔细找找。
设置的时候,速度可是个关键。
太快了,感觉像坐过山车,晕头转向;太慢了,又像蜗牛爬,急死人。
所以得找到那个刚刚好的速度,让你的眼睛和心情都舒服。
我记得有一次,我调了好久才调到满意的速度,那过程就像调试一台精密的仪器。
还有动画效果,这可真是个能让人眼前一亮的东西。
比如说,滚动的时候文字可以有淡入淡出的效果,图片可以有缩放的效果。
但也别弄太多太复杂,不然就像进了一个眼花缭乱的游乐场,反而让人不知所措。
另外,不同的网页可能需要不同的设置。
比如说,新闻网页可能需要简洁快速的滚动;而购物网页可能就需要一些吸引人的动画效果来留住你的目光。
这就像不同的场合要穿不同的衣服一样。
总之,设置插件的网页滚动平滑和动画效果,得耐心细心,多试试多调整,才能找到最适合自己的那个“完美配方”。
这样,你的网页浏览体验就能像一场愉快的旅行啦!。
使用Silverlight入门
创建您的第一个应用程序我们需要做的第一件事情是启动Visual Studio并创建一个新的项目。
在您启动Visual Studio,选择“新建项目”菜单中选择:文件- >新建- >项目这将打开“新建项目”对话框中。
在左侧的“模板”列表中,选择Visual C#中(Visual Basic中也可),然后Silverlight的。
然后选择“项目类型的Silverlight应用。
现在的名字你的项目的HelloWorld,然后选择确定。
接下来打开的对话框中询问您是否要创建一个新的网站,或简单地用一个测试页。
对于本示例中,取消选择“在一个新的网站主机的Silverlight应用程序”。
我们将使用“测试页”选项。
开发Silverlight应用程序时,在使用“网站”选项有一些好处,但这个例子中,测试页就足够了。
这是有创造一个新的Silverlight项目。
下一步我们将添加一些功能的应用程序。
如果您没有看到解决方案资源管理器(通常在右侧窗口),您可以从“查看” - >“解决方案资源管理器。
在解决方案资源管理器中,有一些项目文件。
我们将在此QuickStart中使用的文件MainPage.xaml 中和MainPage.xaml.cs 。
如果您不熟悉使用XAML,XAML是一种基于XML的声明性语言,用于创建和布局的UI元素。
请参阅XAML快速入门上的XAML的更多信息。
cs文件是在C#代码隐藏文件。
通过局部类代码隐藏文件是同一个XAML文件。
代码隐藏和局部类的更多信息,请参见代码隐藏和分部类MSDN文章。
从代码中分离的用户界面,允许您创建声明XAML标记可见的用户界面元素,然后使用一个单独的代码隐藏文件,以响应事件和操作您在XAML中声明的对象。
这种分离使得它很容易为设计人员和开发人员一起工作,有效地在同一项目。
双击上MainPage.xaml中。
这将在主编辑器窗口中打开MainPage.xaml文件。
Sliverlight简介
Sliverlight简介微软Silverlight是一个跨浏览器、跨客户平台的技术,能够设计、开发和发布有多媒体体验与富交互(RIA,Rich Interface Application)的网络交互程序。
Silverlight能创建一种具有很高艺术性的应用程序,具有以下的特点:a)一种跨浏览器、跨平台的技术b)无论在哪运行,都能提供一致的用户体验。
c)它的视频和音频流,视频质量无论从移动设备还是桌面浏览器都是720p HDTV video模式。
d)用户可在浏览器中直接对其进行控制,可以拖动、翻转、放大的图片。
e)它读取数据并且更新外观,但不会通过刷新整体页面来打断f)用户操作。
Silverlight将多种技术结合到一个开发平台,可以在其中选择符合需求的合适的工具和编程语言。
SilverLight提供了如下的特性:1)WPF和XAML。
2)对于JavaScript的扩展。
3)跨浏览器,跨平台的支持。
4)与现存应用程序的集成。
5)可访问.NET Framework编程模型和相关工具。
6)LINQ。
Silverlight包含集成查询(LINQ)语言。
7)如果已经使用,可以将Silverlight集成到熟悉的服务器和客户端功能。
开发工具:A.可以使用已经具有的技能和熟悉的工具来创建基于Silverlight的应用程序,在Web页面中,既可以使用HTML,也可以使用Silverlight的WPF元素,和HTML一样,在Web应用程序中XAML同样可以使用声明的标记来创建用户界面,不同的是,XAML提供了更强大的元素。
B.可以使用强大的Visual Studio 2008 创建Silverlight应用。
(Silverlight在Visual Studio 2008 的IDE中作为一个插件而得到支持。
)同样Visual Studio为Silverlight提供了开发工具,比如.NET Framework中已经为创建应用程序提供的强大的编辑器、项目管理、调试等等。
aps.net国际化本地资源.resources”正确嵌入或链接到程序集
国际化本地资源.resources”正确嵌⼊或链接到程序集国际化提供了资源⽂件的解决的⽅式,
⾃带的两个项⽬⽂件夹
分别是:App_GlobalResources和App_LocalResources,
App_GlobalResources是全局的,任何⽂件都可以访问,⽽App_LocalResources则是⽣成到相关的命名空间下⾯
如图,我在视图⽂件的Main⽂件夹下创建了⼀个本地资源⽂件
在本地资源⽂件夹下⾯添加两个资源,默认的语⾔是英⽂,另外⼀个资源⽂件是中⽂,当程序查找对于区域的语⾔失败的时候会从默认语⾔中取值,所以有了默认语⾔就不⽤担⼼报错啦
本地资源⽂件会编译到⼀个类⾥⾯去,就是index_cshtml,如下图所⽰
具体位置是以其路径命名的命令空间, Web.Views.Main.App_LocalResources
页⾯上⾯的使⽤如下,直接类名找到我们想使⽤的key就可以啦,很⽅便
代码编写完成,直接运⾏,结果报了⼀个错,这个错误让我痛苦了好久,找遍了⽹上的资源就是没有⼀个能够解决问题的答案,
我们来反编译⼀下我们⽣成的dll,发现dll中确实没有错误中提⽰的resource⽂件,然后在好友的提⽰下,是不是资源⽂件的类型错了,那我们就改的试⼀下呗,右击资源⽂件,查看属性
查看如下图,我们把“⽣成操作”的值从“内容”改成“嵌⼊的资源”,重新⽣成⼀下解决⽅案,运⾏⼀下,错误问题完美解决了。
这个时候我们再来看⼀下反编译出来的⽂件,在dll⾥⾯多了⼀个resources⽂件夹,⾥⾯有了相应的资源⽂件了,⾄此问题解决。
ASP.NET页面事件执行过程(完整版)
页⾯事件执⾏过程(完整版) 母版页和内容页中的事件母版页和内容页都可以包含控件的事件处理程序。
对于控件⽽⾔,事件是在本地处理的,即内容页中的控件在内容页中引发事件,母版页中的控件在母版页中引发事件。
控件事件不会从内容页发送到母版页。
同样,也不能在内容页中处理来⾃母版页控件的事件。
在某些情况下,内容页和母版页中会引发相同的事件。
例如,两者都引发和事件。
引发事件的⼀般规则是初始化事件从最⾥⾯的控件向最外⾯的控件引发,所有其他事件则从最外⾯的控件向最⾥⾯的控件引发。
请记住,母版页会合并到内容页中并被视为内容页中的⼀个控件,这⼀点⼗分有⽤。
下⾯是母版页与内容页合并后事件的发⽣顺序:1. 母版页控件 Init 事件。
2. 内容控件 Init 事件。
3. 母版页 Init 事件。
4. 内容页 Init 事件。
5. 内容页 Load 事件。
6. 母版页 Load 事件。
7. 内容控件 Load 事件。
8. 内容页 PreRender 事件。
9. 母版页 PreRender 事件。
10. 母版页控件 PreRender 事件。
11. 内容控件 PreRender 事件。
母版页和内容页中的事件顺序对于页⾯开发⼈员并不重要。
但是,如果您创建的事件处理程序取决于某些事件的可⽤性,那么您将发现,了解母版页和内容页中的事件顺序很有帮助。
Page 执⾏中将按照如下顺序激活事件:Page.PreInitPage.InitPage.InitComplitePage.PreLoadPage.LoadPage.LoadCompletePage.PreRenderPage.PreRenderComplete如果页⾯从另⼀个页⾯继承,如BasePage:System.Web.UI.Page,在BasePage中做了⼀些扩展,如权限检查,⽽其他页⾯从BasePage继承,则BasePage和最终Page的事件激活顺序是:UI.PreInitPage.PreInitUI.InitPage.InitUI.InitComplitePage.InitCompliteUI.PreLoadPage.PreLoadUI.LoadPage.LoadUI.LoadCompletePage.LoadCompleteUI.PreRenderPage.PreRenderUI.PreRenderCompletePage.PreRenderComplete如果使⽤了MasterPage,则MasterPage中的事件和ContentPage中的事件按照下⾯顺序激活:ContentPage.PreInitMaster.InitContentPage.InitContentPage.InitCompliteContentPage.PreLoadContentPage.LoadMaster.LoadContentPage.LoadCompleteContentPage.PreRender更进⼀步,如果ContentPage继承BasePage,那么,各事件的执⾏顺序将变成:UI.PreInitContentPage.PreInitMaster.InitUI.InitContentPage.InitUI.InitCompliteContentPage.InitCompliteUI.PreLoadContentPage.PreLoadUI.LoadContentPage.LoadMaster.LoadUI.LoadCompleteContentPage.LoadCompleteUI.PreRenderContentPage.PreRenderMaster.PreRenderUI.PreRenderCompleteContentPage.PreRenderComplete浏览下来发现并不是我现在所学的 1.1,估计应该是 2.0,不过也没有关系,这让我知道了他们有继承时加载的顺序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本文由xliangbai贡献 pdf文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 20 福 建 电 脑 2008 年第 8 期 利用 Silverlight 插件在 ASP.net 页面中嵌入动画 江 ( 福建信息职业技术学院 南 福建 福州 350003 ) 摘 要】 Silverlight 是微软公司在 2007 年底新推出的一项浏览器增强模块, 可以和 Flash 一样作为浏览器插件工作, 【 : 并且可以把程序任务放到客户端完成, 让服务器减轻负担, 提高客户端的网页访问速度。本文介绍了 Silverlight 的项目结构 以及简单的 Silverlight 程序的实现方法, 并利用实例说明了在 ASP.net 中使用 Silverlight 插件编写代码实现图形动画的方法。 动画 关键词】 Silverlight 、 【 : ASP.net 、 前言 随着网络技术的发展, 网页上丰富多彩的动画已经成为网 页设计中不可或缺的一个部分 , 精彩的动画不仅可以增加网页 浏览的趣味性, 而且在互动教学、 课件设计等方面也起着越来越 重要的作用。 但动画传播的数据量相对较大, 如果一个动画较为 复杂, 则传送的速度会降低, 从而影响了用户使用的积极性。如 何提高动画传送的速度成为一个急待解决的问题。Silverlight 是 微软公司新推出的一个跨浏览器、 跨平台的插件, 可以利用该插 件在网页上实现动画, 原来利用 Flash 插件时需要下载全部文件 内容才能播放, 而现在只要从服务器下载控件后即可在客户端 运行程序实现播放, 减少了数据传送量, 提高了运行速度。这对 于需要大量使用动画进行课件播放的教学平台来说 , 可以提高 教学平台使用者的访问速度, 降低服务器的负担, 可以支持更多 的学习者以提高教学平台的使用效率。 一、 Silverlight 的项目结构 Silverlight2.0 是微软公司于 2007 年底新推出的一项浏览器 增 强 模 块 , 是 一 种 新 的 Web 呈 现 技 术 , 它 依 赖 Microsoft .NET Framework 3.0 中 的 XAML 和 JavaScript 脚 本 创 建 页 面 , 遵 循 WPF, 可 以 和 Flash 一 样 作 为 浏 览 器 插 件 工 作 , 能 够 显 示 矢 量 图 形、 动画和视频, 可以实现跨浏览器和跨平台, 利用 Silverlight 实 现动画可以弥补微软网页中的动画效果的缺陷, 并且通过控件 的实现可以把程序任务放到客户端完成, 让服务器减轻负担, 提 高客户端的网页访问速度。 要创建一个 Silverlight 应用程序, 必须安装 Silverlight 的浏 览器插件程序。如果只是用 JavaScript 进行 开 发 , 可 以 安 装 Mi- crosoft Silverlight 1.0 Release Candidate; 如果开发过程需要用到 . NET 的编程语言, 则需要安装 Microsoft Silverlight 1.1 Alpha Re- fresh., 创 建 Silverlight 项 目 可 以 用 Microsoft Expression Blend 2 (目 前 最 新 的 预 览 版 本 是 September Preview) 或 者 Visual Studio 创建之后包含以下 2008 Beta2 (需安装好 Silverlight Tool Alpha)。 几类文件: 嵌入 Silverlight 应用程序的 html 文件。 1、 2 、 用 来 执 行 Silverlight 应 用 程 序 载 入 工 作 的 JavaScript 文 件。 定义和描述应用程序界面的 XAML 文件。 3、 不 同 的 是 , 用 VS2008 创 建 的 项 目 默 认 主 页 的 文 件 名 是 TestPage.html, 而 用 Microsoft Expression Blend 2 创 建 的 项 目 默 认主页的文件名是 Default.html。 具体的目录结构如下: 1.References 目录 该 目 录 中 包 含 了 许 多 (.dll)文 件 , 这 些 文 件 定 义 了 项 目 中 所 引用的各托管类型。 如果我们要使用其他自定义的类型, 就可能 需要手动添加包含该类型定义的 .dll 文件。若 Silverlight 插件中 没有包含项目所引用的某些程序集文件, 则应用程序用户需要 下载这些程序集文件到本地。界面描述中所定义的新类型都包 含在程序集 (assembly)文件中。 2.Page.xaml 和 Page.xaml.cs Page.xaml 是 项 目 默 认 的 主 界 面 的 XAML 描 述 文 件 。 每 个 xaml 文件之后 都 有 一 个 对 应 的 .NET 语 言 文 件 。 Page.xaml.cs 就 是用 C# 创建项目时其对应的文件。这个文件对 .xaml 文件中的 所引用的 .NET 类型做了定义。通过编译之后, 项 目 会 生 成 程 序 集文件, 供 .xaml 文件引用, 且该程序集文件会随 Silverlight 应 用 程 序 一 起 下 载 到 用 户 本 地 。 在 Page.xaml 文 件 中 有 一 个 Canvas 容器, 作为文件的根元素, 包含了程序中用到的各种控件和元 素。 3.Silverlight.js 该 文 件 包 含 了 运 行 Silverlight 应 用 程 序 之 前 所 必 需 的 各 种 操作, 主要检查用户是 否 安 装 了 符 合 版 本 需 求 的 Silverlight。 如 果没有安装, 则 Silverlight 应用程序所在的页面将会显示图标, 提示用户先安装插件。最好不要改变该 .js 文件的内容。 4.TestPage.html(Blend 2 中 创 建 的 文 件 名 为 Default.html) 和 TestPage.html.js(Blend 2 中的文件名为 Default_html.js) TestPage.html 是该文件为项目的 默 认 主 页 , 文 件 中 引 入 了 Silverlight 的脚本文件来载入 Silverlight 应用程序。 TestPage.html. js 文件中定 义 了 TestPage.html 中 调 用 的 CreatSilverlight()方 法 来 载入 Silverlight 应用程序。 二、 Silverlight 应用程序的创建 下面以 C# 为例, 介绍 Silverlight 应用程序的创建方法。 1. 新建 Silverlight 项目 在 Microsoft Visual Studio 2008 中 安 装 了 Microsoft Sil- verlight Tools Alpha for Visual Studio 2008 Beta2 后 就 可 以 创 建 一 个 Silverlight 项 目 。 在 .net 中 打 开 new project 对 话 框 , 选 择 创 Silverlight Project 用于创建一个完整的 Silverlight 应用程序。 建项目后将自动生成 Page.xaml 文件并打开。 2. 编辑 XAML 文件 在打开的 Page.xaml 中将看到 <Canvas>容器, 在容器中输入 运行程序所需要的代码, 最简单的一段代码如下, 可以在屏幕上 显示 "It's a example" 字样。 <Canvas x:Name="MyCanvas" xmlns="http://172.16.13.14/mitu_xw/client" xmlns:x="http:// 172.16.13.14/mitu_xw/ xaml" Loaded="Page_Loaded" x:Class="SilverlightProjectStructure.Page;assembly=ClientBin/SilverlightProject- Structure.dll" Width="100%" Height="100%" Background="White" > <TextBlock x:Name="MyMessage" Text=" It's a example " FontSize=" 30"/> </Canvas> 3. 加入事件处理代码 在 ASP.net 页 面 中 并 不 仅 仅 实 现 文 字 的 输 入 , 更 多 的 是 需 1.福建省教育厅科技项目, 项目编号: JB07195 信息技术环境下多元学与教方式有效融入日常教学的研究》 子课题, 课题批准号: BCA060016 2.国家社会科学基金 " 十一五 " 规划( 教育学科) 国家级课题《 2008 年第 8 期 福 建 电 脑 21 要进行事件处理, 因此需要对刚才屏幕上显示的文字进行事件 处理, 例如单击该文字让它变成另外一句话 "Clicked me! " 。 事件 处理代码是在 Page.xaml 所对应的代码文件 Page.xaml.cs 中添加 的, 我们可以打开 Page.xaml.cs 文件, 在其中加入下面的代码: public { void Page_Loaded(object o, EventArgs e) 在横向或纵向上产生扭曲位移) 、 移动变形 <TranslateTransform/> ( 让图形产生一定的位移 ) 以 及 组 合 变 形 <MatrixTransform/>( 综 合以上几种变形的特性) 。如代码 <RotateTransform Angle="45" />可以让图形顺时针旋转 45 度, 组合变换代码 InitializeComponent(); MyMessage.MouseLeftButtonDown += newMouseEventHandler (MyMes- sage_MouseLeftButtonDown); 。 } void MyMessage_MouseLeftButtonDown (object sender, MouseEventArgs arg) { MyMessage.Text = " Clicked me! "; } <RotateTransform Angle="45"/> <SkewTransform AngleX="45"/> 不 仅 让 图 形 顺 时 针 旋 转 45 度 , 而 且 在 X 方 向 上 扭 曲 45 度。 4. 利用时间轴产生变换效果 点击设计界面左侧 Objects and Timeline 中 的 箭 头 符 号 , 如图 并在弹出的对话框中点击 " 加号 " ( Create New Timeline ) 。 所示。 1 运 行 以 上 程 序 , 对 屏 幕 上 出 现 的 "It's a example" 文 字 单 击 , 该文字即变为 " Clicked me! " 。 三、 Silverlight 对象的动画操作 在 Silverlight 中 可 以 通 过 结 合 使 用 Microsoft Expression 动 Blend 对 UI、 画 或 交 互 性 内 容 进 行 更 有 效 的 设 计 开 发 , 且 Mi- crosoft Visual Studio Orcas 与 Microsoft Expression Blend 可 以 协 调工作, 以实