|
|
3#

楼主 |
发表于 2007-11-29 12:30:22
|
只看该作者

Type.registerNamespace("Wrappers");
Wrappers.TextBox = function(element) {
Wrappers.TextBox.initializeBase(this, [element]);
}
Wrappers.TextBox.prototype = {
_events: null,
xamlInitialize : function() {
Wrappers.TextBox.callBaseMethod(this, 'xamlInitialize');
// Hookup mouseEnter and mouseLeftButtonUp events
var func = Function.createDelegate(this, this._animate);
var rectangle=this.get_element().content.findName("rectangle");
// Use mouseEnter to begin our Storyboard animation
this.addEventListener(rectangle,"mouseEnter", func);
// Use mouseLeftButtonUp to transfer focus to our TextBox
func=Function.createDelegate(this,this._transferFocus);
this.addEventListener(rectangle,"mouseLeftButtonUp",func);
},
_animate : function(sender, e) {
sender.findName("animation").begin();
},
_transferFocus : function(sender, e){
$get("TextBox1").focus();
}
}
Wrappers.TextBox.registerClass('Wrappers.TextBox', Sys.Preview.UI.Xaml.Control);
例子4
在准备好JavaScript文件以及动画被激活之后,还有一项事情要做。因为背景是层叠在TextBox上面的,点击该TextBox 不会传递焦点。你需要给手工给TextBox添加一个mouseLeftButtonUp事件处理,从而当鼠标点击时,焦点可以传递给该TextBox。在例子4中,_transferFocus函数展示了该功能。
AJAX 和Silverlight
用户体验是应用程序一个重要环节,这种观念最近迅速得到大家的认可。AJAX是一个有效的方法,它有助于打破网络应用程序性能和可用性方面的障碍。不过,虽然CSS 和JavaScrip给我们提供了式样和整体视觉吸引力,但是我们还是局限于使用浏览器得以核心要素。JavaScript的动画效果非常有限,并且随着它们变得越来越复杂,有时候它们会很不连贯,而且在许多情况下它们给浏览器代来的负担过重使得不能相应客户端浏览器。一个反应迟钝的浏览器是用户体验的最可怕的杀手。而要突破视觉障碍,就需要Silverlight这样的技术。虽然完全使用Silverlight创建一个项目是可能的,然而在很多的情况下,这是不是没有必要的,甚至是不可行的。相反,将Silverlight层叠再你现有的应用上,你可以将用户体验提高一个层次,并且不用花费宝贵的时间和金钱去重写代码。 |
|