我可以说是最早接触Silverlight的.NET开发人员,发现使用Silverlight开发东西还真是一个体力活,幸好有一些比较轻量级的开发工具可以使用。
开发工具:VS 2008(凑合用用吧) Blend 2.0 June Beta版 画界面一定要用, IE 8.0 Beta1 FireFox's FireBug ,代码管理工具 VS Team 2008
下面是我在开发CRD的时候使用的代码和遇到的问题,最近为CRD做的Silverlight马上就要发布了,大家有时间捧个场。
开始开发,重新设计createilverlight,代码如下:
className要实现类名;
xamlName要创建xaml的名称
silverlightPlugInHostName是Silverlight要挂接的宿主的Id,通常是Div的Silverlight
silverlightName是生成Object对象的Id
1CRD.createSilverlight = function(className,xamlName,silverlightPlugInHostName,silverlightName)
2{
3 var scene = new className();
4 CRD.InstanceLibrary[xamlName] = scene;
5
6 Silverlight.createObjectEx({
7 source: xamlName,
8 parentElement: document.getElementById(silverlightPlugInHostName),
9 id: silverlightName,
10 properties: {
11 '1000',
12 height: '500',
13 background:'#00ffffff',
14 isWindowless: 'true',
15 version: '1.0',
16 framerate:'30'
17
18 },
19 events: {
20 onError: null,
21 onLoad: Silverlight.createDelegate(scene, scene.handleLoad)
22 },
23 context: null
24 });
25}
2{
3 var scene = new className();
4 CRD.InstanceLibrary[xamlName] = scene;
5
6 Silverlight.createObjectEx({
7 source: xamlName,
8 parentElement: document.getElementById(silverlightPlugInHostName),
9 id: silverlightName,
10 properties: {
11 '1000',
12 height: '500',
13 background:'#00ffffff',
14 isWindowless: 'true',
15 version: '1.0',
16 framerate:'30'
17
18 },
19 events: {
20 onError: null,
21 onLoad: Silverlight.createDelegate(scene, scene.handleLoad)
22 },
23 context: null
24 });
25}
问题:
在Html Transitional的DocType情况下,有些元素是不能使用"/>"进行封口的,例如:a,div,好像只有<br/><hr/>可以吧,否则页面会出现问题。
Silverlight在Host便签的Style为display:none时,是没有办法使用全屏模式的。content.FullScreen=true是没有作用的。
Silverlight全屏幕模式被激发的时候,如果没有Silverlight当前没有得到鼠标点击焦点,(模拟点击也不可以),Silverlight的actualWidth和actualHeight
是Host的Width和Height。大家注意了。
未完待续