<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_海纳百川，有容乃大；壁立千仞，无欲则刚。</title><subtitle type="text">温州人才网：http://www.myjob123.net | 南昌免费人才网：http://www.0791hr.net/</subtitle><id>http://feed.cnblogs.com/blog/u/14238/rss</id><updated>2012-06-04T05:12:00Z</updated><author><name>有容乃大</name><uri>http://www.cnblogs.com/mrhgw/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mrhgw/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/14238/rss"/><entry><id>http://www.cnblogs.com/mrhgw/archive/2012/06/04/2534522.html</id><title type="text">一些Objective-C学习资源(转载)</title><summary type="text">入门文章：Learn Objective-C 很基础很简洁Learn Objective-C（中文版） E文不好的可以看看咯Objective-C 2.0特性与运行时编程 一网友的笔记熟悉语法特性Objective-C语法快速参考 继续熟悉语法学习Objective-C: 入门教程 适合语言过渡Objective-C Beginner's GuideObject-C 的语法与 Cocoa 框架 很好的笔记objective-c内存管理基础 内存才是王道啊Memory Management with Objective C / Cocoa / iPhoneObjective-C 中文版入</summary><published>2012-06-04T05:12:00Z</published><updated>2012-06-04T05:12:00Z</updated><author><name>有容乃大</name><uri>http://www.cnblogs.com/mrhgw/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mrhgw/archive/2012/06/04/2534522.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mrhgw/archive/2012/06/04/2534522.html"/><content type="html">&lt;table style="width: 500px;" border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr bgcolor="#c0c0c0"&gt;&lt;td style="width: 426px; height: 18px;"&gt;&lt;span style="color: #993300;"&gt;入门文章：&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;a title="Learn Objective-C" href="http://cocoadevcentral.com/d/learn_objectivec/"&gt;Learn Objective-C&lt;/a&gt; 很基础很简洁&lt;/p&gt;&lt;p&gt;&lt;a title="Learn Objective-C（中文版）" href="http://mobile.51cto.com/hot-232833.htm"&gt;Learn Objective-C（中文版）&lt;/a&gt; E文不好的可以看看咯&lt;/p&gt;&lt;p&gt;&lt;a title="Objective-C 2.0特性与运行时编程" href="http://www.cocoachina.com/newbie/tutorial/2011/0411/2776.html"&gt;Objective-C 2.0特性与运行时编程&lt;/a&gt; 一网友的笔记熟悉语法特性&lt;/p&gt;&lt;p&gt;&lt;a title="Objective-C语法快速参考" href="http://www.cocoachina.com/newbie/tutorial/2009/0611/150.html"&gt;&lt;span style="font-size: 12pt;"&gt;Objective-C语法快速参考&lt;/span&gt;&lt;/a&gt; 继续熟悉语法&lt;/p&gt;&lt;p&gt;&lt;a title="学习Objective-C: 入门教程" href="http://www.cnblogs.com/gateluck/archive/2011/01/27/object_c.html"&gt;学习Objective-C: 入门教程&lt;/a&gt; 适合语言过渡&lt;/p&gt;&lt;p&gt;&lt;a title="Objective-C Beginner's Guide" href="http://www.otierney.net/objective-c.html"&gt;Objective-C Beginner's Guide&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a title="Object-C 的语法与 Cocoa 框架" href="http://www.cocoachina.com/newbie/tutorial/2011/0402/2753.html"&gt;Object-C 的语法与 Cocoa 框架&lt;/a&gt; 很好的笔记&lt;/p&gt;&lt;p&gt;&lt;a title="objective-c内存管理基础" href="http://www.cnblogs.com/zhuqil/archive/2011/03/16/1986420.html"&gt;objective-c内存管理基础&lt;/a&gt; 内存才是王道啊&lt;/p&gt;&lt;p&gt;&lt;a title="Memory Management with Objective C / Cocoa / iPhone" href="http://memo.tv/memory_management_with_objective_c_cocoa_iphone"&gt;Memory Management with Objective C / Cocoa / iPhone&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a title="Objective-C 中文版入门指南" href="http://www.cocoachina.com/newbie/basic/2011/0331/2751.html"&gt;Objective-C 中文版入门指南&lt;/a&gt; 也是语法方面的&lt;/p&gt;&lt;p&gt;&lt;a title="一园友博客" href="http://www.cnblogs.com/yaski/tag/Objective-C/"&gt;一园友博客&lt;/a&gt; 很不错的一个系列&lt;/p&gt;&lt;p&gt;&lt;a title="Xcode 开发员入门引导" href="http://www.cocoachina.com/newbie/basic/2010/0408/992.html"&gt;Xcode 开发员入门引导&lt;/a&gt; 对Xcode的一个简单认识&lt;/p&gt;&lt;p&gt;&lt;a title="苹果开发技术： Cocoa 框架概述" href="http://www.cocoachina.com/newbie/basic/2009/0611/130.html"&gt;苹果开发技术： Cocoa 框架概述&lt;/a&gt; 很简洁官方资源&lt;/p&gt;&lt;p&gt;&lt;a title="Windows OOP与Cocoa MVC之对比" href="http://www.cocoachina.com/newbie/basic/2009/0611/250.html"&gt;Windows OOP与Cocoa MVC之对比&lt;/a&gt; 看看，会有新体会啊&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;table style="width: 500px;" border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr bgcolor="#c0c0c0"&gt;&lt;td style="width: 478px; height: 18px;"&gt;&lt;span style="color: #993300;"&gt;网站：&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;a title="cocoachina" href="http://www.cocoachina.com/"&gt;cocoachina&lt;/a&gt; 不可多得的中文网站&lt;/p&gt;&lt;p&gt;&lt;a title="苹果开发者官网" href="http://developer.apple.com/technologies/"&gt;苹果开发者官网&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a title="一个对计算机技术无比热情的学佛者的blog" href="http://c.gzl.name/archives"&gt;一个对计算机技术无比热情的学佛者的blog&lt;/a&gt; 从零学开始的&lt;/p&gt;&lt;p&gt;&lt;a title="Mac OS X Developer Library" href="http://developer.apple.com/library/mac/navigation/"&gt;Mac OS X Developer Library&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a title="参考库（中文版）" href="http://www.apple.com.cn/developer/mac/library/navigation/ios.html"&gt;参考库（中文版）&lt;/a&gt; 推荐啊&lt;/p&gt;&lt;p&gt;&lt;a title="Free Iphone" href="http://www.freeiphones4me.com/blog/"&gt;Free Iphone&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a title="Techotopia" href="http://www.techotopia.com/index.php/Main_Page"&gt;Techotopia&lt;/a&gt; 综合型的，相信你会喜欢&lt;/p&gt;&lt;p&gt;&lt;a title="cocoadevcentral" href="http://http//cocoadevcentral.com/.com/"&gt;cocoadevcentral&lt;/a&gt; 学习Cocoa的好去处&lt;/p&gt;&lt;p&gt;&lt;a title="tuaw" href="http://www.tuaw.com/"&gt;tuaw&lt;/a&gt; 苹果有关，非常齐全&lt;/p&gt;&lt;p&gt;&lt;a href="http://cocoawithlove.com/"&gt;http://cocoawithlove.com/&lt;/a&gt; 很齐全的&lt;/p&gt;&lt;p&gt;&lt;a title="易飞扬的博客" href="http://www.yifeiyang.net/"&gt;易飞扬的博客&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a title="台湾iPhone开发者论坛" href="http://dev.iphonetw.net/"&gt;台湾iPhone开发者论坛&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a title="雨雪霏霏 &amp;ndash; iPhone博客" href="http://lichen1985.com/blog/"&gt;雨雪霏霏 &amp;ndash; iPhone博客&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a title="icodeblog" href="http://www.icodeblog.com/"&gt;icodeblog&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a title="maniacdev" href="http://maniacdev.com/"&gt;maniacdev&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a title="mobileorchard" href="http://mobileorchard.com/category/tutorials/iost/"&gt;mobileorchard&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a title="iphone-tutorials" href="http://iphone-tutorials.org/"&gt;iphone-tutorials&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;table style="width: 500px;" border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr bgcolor="#c0c0c0"&gt;&lt;td style="width: 426px; height: 18px;"&gt;&lt;span style="color: #993300;"&gt;教学视频：&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;a title="iPhone Application Programming (Spring 2009)" href="http://itunes.apple.com/itunes-u/iphone-application-programming/id384233222#ls=1"&gt;iPhone Application Programming (Spring 2009) &lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a title="Developing Apps for iOS" href="http://itunes.apple.com/us/itunes-u/developing-apps-for-ios-hd/id395605774"&gt;Developing Apps for iOS&lt;/a&gt; 极力推荐&lt;/p&gt;&lt;p&gt;&lt;a title="iPhone Application Development (Winter 2010)" href="http://itunes.apple.com/us/itunes-u/iphone-application-development/id384233225"&gt;iPhone Application Development (Winter 2010)&lt;/a&gt; 极力推荐&lt;/p&gt;&lt;p&gt;&lt;a title="iPhone Application Development (Winter 2010)（带字幕）" href="http://v.163.com/special/opencourse/iphonekaifa.html"&gt;iPhone Application Development (Winter 2010)（带字幕）&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a title="斯坦福ios 4.0（中文字幕）" href="http://www.ipadev.org/category/iphoneipad-videos/"&gt;斯坦福ios 4.0（中文字幕）&lt;/a&gt; E文不好的同样可以看一下&lt;/p&gt;&lt;p&gt;&lt;a title="WWDC 2010 Sessions Videos" href="http://developer.apple.com/videos/access/"&gt;WWDC 2010 Sessions Videos&lt;/a&gt; 这个有难度哟&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;转自 &lt;a id="lnkBlogTitle" href="http://www.cnblogs.com/xymwbc/"&gt;Paul Wong&lt;/a&gt;的博客&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;img src="http://www.cnblogs.com/mrhgw/aggbug/2534522.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mrhgw/archive/2012/06/04/2534522.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mrhgw/archive/2012/04/21/2461566.html</id><title type="text">发布一个jquery插件--在Web下输入密码时提示大写锁定键(2012-05-03 10:20最后修改)</title><summary type="text">功能介绍：在Web下输入密码时提示大写锁定键，封装成jq插件方便有需要的同学！使用：$("#txtPWD").capsLockTip();</summary><published>2012-04-21T07:47:00Z</published><updated>2012-04-21T07:47:00Z</updated><author><name>有容乃大</name><uri>http://www.cnblogs.com/mrhgw/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mrhgw/archive/2012/04/21/2461566.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mrhgw/archive/2012/04/21/2461566.html"/><content type="html">&lt;p&gt;功能介绍：&lt;br /&gt;在Web下输入密码时提示大写锁定键，封装成jq插件方便有需要的同学！&lt;/p&gt;&lt;p&gt;使用：&lt;br /&gt;$("#txtPWD").capsLockTip();&lt;/p&gt;&lt;p&gt;截图预览：&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/10683/2012042115444098.gif" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000; font-size: 14pt;"&gt;&lt;strong&gt;代码(&lt;span style="text-decoration: underline;"&gt;2012-05-03 10:20最后修改&lt;/span&gt;)：&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000; font-size: 14pt;"&gt;&lt;strong&gt;1. 使用公用静态对象，使多个密码框共享状态。&lt;br /&gt;2. 增加focus 和 blur事件，提示更方便及时。&lt;br /&gt;3. 优化代码。&lt;br /&gt;4. 使用：$("#txtPWD").capsLockTip(); //注意不要将些代码加在$(document).ready()里面。&lt;br /&gt;5. &lt;span style="text-decoration: underline;"&gt;修正页面在Post后插件失效。&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;=============== 大写锁定键打开提示 ============================================//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br/&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br/&gt;使用：$("#txtPWD").capsLockTip(); //注意不要将些代码加在$(document).ready()里面。&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br/&gt;(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt; ($) {&lt;br/&gt;    $.fn.extend({&lt;br/&gt;        capsLockTip: &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt; () {&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.each(&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt; () {&lt;br/&gt;                &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;创建对象实例并保存。&lt;/span&gt;&lt;br/&gt;                &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;获取实例对象：var api = $("#txtPWD").data("txtPWD");&lt;/span&gt;&lt;br/&gt;                &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; ins = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; $.CapsLockTip($(&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;));&lt;br/&gt;                $(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;).data(&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.id, ins);&lt;br/&gt;            });&lt;br/&gt;        }&lt;br/&gt;    });&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;创建一个实例。&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;___target jq目标对象。&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;___divTipID   显示提示文本的div。&lt;/span&gt;&lt;br/&gt;    $.CapsLockTip = &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt; (___target) {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;设置当前实例的配置参数。&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.target =&lt;span style="color: #000000;"&gt; ___target;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; _this = &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;br/&gt;        $(document).ready(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt; () {         &lt;br/&gt;            _this.target.bind(&lt;/span&gt;"keypress", &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt; (_event) {&lt;br/&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; e = _event ||&lt;span style="color: #000000;"&gt; window.event;&lt;br/&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; kc = e.keyCode ||&lt;span style="color: #000000;"&gt; e.which;&lt;br/&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; isShift = e.shiftKey || (kc == 16) || &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;                $.fn.capsLockTip.capsLockActived &lt;/span&gt;= &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; ((kc &amp;gt;= 65 &amp;amp;&amp;amp; kc &amp;lt;= 90 &amp;amp;&amp;amp; !isShift) || (kc &amp;gt;= 97 &amp;amp;&amp;amp; kc &amp;lt;= 122 &amp;amp;&amp;amp;&lt;span style="color: #000000;"&gt; isShift))&lt;br/&gt;                    $.fn.capsLockTip.capsLockActived &lt;/span&gt;= &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;                _this.showTips($.fn.capsLockTip.capsLockActived);&lt;br/&gt;            });&lt;br/&gt;&lt;br/&gt;            _this.target.bind(&lt;/span&gt;"keydown", &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt; (_event) {&lt;br/&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; e = _event ||&lt;span style="color: #000000;"&gt; window.event;&lt;br/&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; kc = e.keyCode ||&lt;span style="color: #000000;"&gt; e.which;&lt;br/&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (kc == 20 &amp;amp;&amp;amp; &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt; !=&lt;span style="color: #000000;"&gt; $.fn.capsLockTip.capsLockActived){&lt;br/&gt;                    $.fn.capsLockTip.capsLockActived &lt;/span&gt;= !&lt;span style="color: #000000;"&gt;$.fn.capsLockTip.capsLockActived;&lt;br/&gt;                    _this.showTips($.fn.capsLockTip.capsLockActived);&lt;br/&gt;                }&lt;br/&gt;            });&lt;br/&gt;&lt;br/&gt;            _this.target.bind(&lt;/span&gt;"focus", &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt; (_event) {&lt;br/&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt; !=&lt;span style="color: #000000;"&gt; $.fn.capsLockTip.capsLockActived)&lt;br/&gt;                    _this.showTips($.fn.capsLockTip.capsLockActived);&lt;br/&gt;            });&lt;br/&gt;&lt;br/&gt;            _this.target.bind(&lt;/span&gt;"blur", &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt; (_event) {&lt;br/&gt;                _this.showTips(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;            });&lt;br/&gt;        });&lt;br/&gt;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;创建显示大写锁定的div。&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.createTooltip = &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;(){&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;(&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt; !=&lt;span style="color: #000000;"&gt; $.fn.capsLockTip.divTip)&lt;br/&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; $.fn.capsLockTip.divTip;&lt;br/&gt;&lt;br/&gt;            $(&lt;/span&gt;"body").append("&amp;lt;div id='divTip__985124855558842555' style='width:100px; height:15px; padding-top:3px; display:none; position:absolute; z-index:9999999999999; text-align:center; background-color:#FDF6AA; color:Red; font-size:12px; border:solid 1px #DBC492; border-bottom-color:#B49366; border-right-color:#B49366;'&amp;gt;大写锁定已打开&amp;lt;/div&amp;gt;"&lt;span style="color: #000000;"&gt;);&lt;br/&gt;            $.fn.capsLockTip.divTip &lt;/span&gt;= $("#divTip__985124855558842555"&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; $.fn.capsLockTip.divTip;&lt;br/&gt;        };&lt;br/&gt;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;显示或隐藏大写锁定提示。&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.showTips = &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt; (display) {&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; divTip =&lt;span style="color: #000000;"&gt; _this.createTooltip();&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (display) {&lt;br/&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; offset =&lt;span style="color: #000000;"&gt; _this.target.offset();&lt;br/&gt;                divTip.css(&lt;/span&gt;"left", offset.left + "px"&lt;span style="color: #000000;"&gt;);&lt;br/&gt;                divTip.css(&lt;/span&gt;"top", offset.top + _this.target[0].offsetHeight + 3 + "px"&lt;span style="color: #000000;"&gt;);&lt;br/&gt;                divTip.show();&lt;br/&gt;            }&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt; {&lt;br/&gt;                divTip.hide();&lt;br/&gt;            }&lt;br/&gt;        };&lt;br/&gt;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;jq控件公用静态对象。&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;        &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;提示框。&lt;/span&gt;&lt;br/&gt;        $.fn.capsLockTip.divTip = &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;大写锁定键状态&lt;/span&gt;&lt;br/&gt;        $.fn.capsLockTip.capsLockActived = &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;    };&lt;br/&gt;})(jQuery);&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/mrhgw/aggbug/2461566.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mrhgw/archive/2012/04/21/2461566.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mrhgw/archive/2012/04/21/2461107.html</id><title type="text">Windows2008 IIS7.5的虚拟空间，Application_Start中方法和后台线程写入文件被拒绝，什么原因？</title><summary type="text">本地都没有问题，自己公司的服务器将指定目录添加IIS AppPool\池名 的写入权限，也没有问题。程序上传到秀网互联的Windows2008 IIS7.5的虚拟空间，Application_Start中方法 和 其它后台线程写入文件都被拒绝，但前台程序比如某个.apsx页面点击按钮却可以写入文件真奇怪！我怀疑是IIS或服务器没有配置好，但机房技术负责人说权限一直就是这样的，别人的程序照样可以上传文件(擦，我前台程序一样可以写入文件，关键是后台线程)...谁碰到过这种事情请支个招，拜谢！搜遍整个园子，baidu没找到答案，博问也发了没有人回应，占个首页请管理员宽容一下，谢谢！</summary><published>2012-04-21T02:58:00Z</published><updated>2012-04-21T02:58:00Z</updated><author><name>有容乃大</name><uri>http://www.cnblogs.com/mrhgw/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mrhgw/archive/2012/04/21/2461107.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mrhgw/archive/2012/04/21/2461107.html"/><content type="html">&lt;p&gt;本地都没有问题，自己公司的服务器将指定目录添加IIS AppPool\池名 的写入权限，也没有问题。&lt;/p&gt;&lt;p&gt;程序上传到秀网互联的Windows2008 IIS7.5的虚拟空间，&lt;span style="color: #ff0000;"&gt;Application_Start中方法 和 其它后台线程写入文件都被拒绝&lt;/span&gt;，&lt;span style="color: #008000;"&gt;但前台程序比如某个.apsx页面点击按钮却可以写入文件真奇怪&lt;/span&gt;！&lt;/p&gt;&lt;p&gt;我怀疑是IIS或服务器没有配置好，但机房技术负责人说权限一直就是这样的，别人的程序照样可以上传文件(擦，我前台程序一样可以写入文件，&lt;span style="color: #ff0000;"&gt;关键是后台线程&lt;/span&gt;)...&lt;/p&gt;&lt;p&gt;谁碰到过这种事情请支个招，拜谢！&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000; font-size: 16px;"&gt;&lt;strong&gt;搜遍整个园子，baidu没找到答案，博问也发了没有人回应，&lt;span style="text-decoration: underline;"&gt;&lt;span style="color: #ff0000; text-decoration: underline;"&gt;占个首页请管理员宽容一下&lt;/span&gt;&lt;/span&gt;，谢谢！&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/mrhgw/aggbug/2461107.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mrhgw/archive/2012/04/21/2461107.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mrhgw/archive/2012/04/09/2439613.html</id><title type="text">metro效果的jquery插件</title><summary type="text">演示地址：http://www.drewgreenwell.com/projects/metrojs#fiddleAround下载地址：http://files.cnblogs.com/mrhgw/metrojs.0.8.9.3a.zip</summary><published>2012-04-09T14:05:00Z</published><updated>2012-04-09T14:05:00Z</updated><author><name>有容乃大</name><uri>http://www.cnblogs.com/mrhgw/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mrhgw/archive/2012/04/09/2439613.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mrhgw/archive/2012/04/09/2439613.html"/><content type="html">&lt;p&gt;演示地址：&lt;a href="http://www.drewgreenwell.com/projects/metrojs#fiddleAround"&gt;http://www.drewgreenwell.com/projects/metrojs#fiddleAround&lt;/a&gt;&lt;/p&gt;&lt;p&gt;下载地址：&lt;a href="http://files.cnblogs.com/mrhgw/metrojs.0.8.9.3a.zip"&gt;http://files.cnblogs.com/mrhgw/metrojs.0.8.9.3a.zip&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/mrhgw/aggbug/2439613.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mrhgw/archive/2012/04/09/2439613.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mrhgw/archive/2011/10/07/2200509.html</id><title type="text">修改Windows远程登录端口号</title><summary type="text">为防止他人进行恶意连接，就需要对默认端口进行更改。对此可打开注册表编辑器，依次展开“HKEY_LOCAL_MACHINE--&gt;SYSTEM--&gt;CurrentControlSet--&gt;Control--&gt;Terminal Server--&gt;Wds--&gt;rdpwd--&gt;Tds--&gt;tcp”分支，其下的“PortNumber”键值所对应的就是端口号，是十六进制下的键值，将其修改即可。上面设置完成后，需要再依次展开“HKEY_LOCAL_MACHINE--&gt;SYSTEM--&gt;CurrentControlSet--&gt;Control--&amp;</summary><published>2011-10-07T05:20:00Z</published><updated>2011-10-07T05:20:00Z</updated><author><name>有容乃大</name><uri>http://www.cnblogs.com/mrhgw/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mrhgw/archive/2011/10/07/2200509.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mrhgw/archive/2011/10/07/2200509.html"/><content type="html">&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 为防止他人进行恶意连接，就需要对默认端口进行更改。对此可打开注册表编辑器，依次展开&lt;/p&gt;&lt;p&gt;&amp;ldquo;HKEY_LOCAL_MACHINE--&amp;gt;SYSTEM--&amp;gt;CurrentControlSet--&amp;gt;Control--&amp;gt;Terminal Server--&amp;gt;Wds--&amp;gt;rdpwd--&amp;gt;Tds--&amp;gt;tcp&amp;rdquo;分支，其下的&amp;ldquo;PortNumber&amp;rdquo;键值所对应的就是端口号，是十六进制下的键值，将其修改即可。上面设置完成后，需要再依次展开&lt;/p&gt;&lt;p&gt;&amp;ldquo;HKEY_LOCAL_MACHINE--&amp;gt;SYSTEM--&amp;gt;CurrentControlSet--&amp;gt;Control--&amp;gt;Terminal Server--&amp;gt;WinStations--&amp;gt;RDP-Tcp&amp;rdquo;分支，同样将其下的&amp;ldquo;PortNumber&amp;rdquo;键值进行更改。&lt;/p&gt;&lt;p&gt;当更改了服务器的远程登录端口后，只需要在客户端链接地址栏中的IP地址加入端口号即可，如200.200.200.200:3390。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/mrhgw/aggbug/2200509.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mrhgw/archive/2011/10/07/2200509.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mrhgw/archive/2011/09/30/2196221.html</id><title type="text">CU3ER非常Cool的3D效果的Flash Slider</title><summary type="text">用户界面3D效果Quick Start使用CU3ER的简单十步：1、下载CU3ER，解压缩文件到独立的文件夹。2、（可选）创建你的图片并将它们放到cu3er的images目录下，如果你不使用提供的图片的话。3、备份config.xml（可以重命名它为config_bkp.xml类似的名字）并在同样的位置创建新的config.xml。4、（可选）如果你想在web页中预览CU3ER的话，自定义demo.htm。否则跳过这步。务必在demo.htm的&lt;script&gt;标签中定义CU3ER的尺寸。5、自定义你新建的config.xml（查看下方的XML自定义指南）6、预览并测试你的CU3ER</summary><published>2011-09-30T02:45:00Z</published><updated>2011-09-30T02:45:00Z</updated><author><name>有容乃大</name><uri>http://www.cnblogs.com/mrhgw/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mrhgw/archive/2011/09/30/2196221.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mrhgw/archive/2011/09/30/2196221.html"/><content type="html">&lt;div&gt;&lt;strong&gt;&lt;span style="color: #ff0000; font-size: large;"&gt;&lt;span style="font-size: 18px;"&gt;用户界面&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 18px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 18px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;&lt;span style="color: #ff0000; font-size: large;"&gt;&lt;span style="font-size: 18px;"&gt;&lt;span&gt;&lt;img class="blogimg" border="0" src="http://hiphotos.baidu.com/%BF%DB%BF%DB6085969/pic/item/15c34ff3e38209764e4aea4e.jpg" small="0" /&gt;&lt;/span&gt;&lt;br /&gt;3D效果&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size: 18px;"&gt;&lt;span&gt;&lt;img class="blogimg" border="0" src="http://hiphotos.baidu.com/%BF%DB%BF%DB6085969/pic/item/1714ecd73b75ee476227984b.jpg" small="0" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;strong&gt;&lt;span style="color: #ff0000; font-size: large;"&gt;&lt;span style="font-size: 18px;"&gt;Quick Start&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;使用CU3ER的简单十步：&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;1、下载CU3ER，解压缩文件到独立的文件夹。&lt;/div&gt;&lt;div&gt;2、（可选）创建你的图片并将它们放到cu3er的images目录下，如果你不使用提供的图片的话。&lt;/div&gt;&lt;div&gt;3、&lt;strong&gt;备份config.xml&lt;/strong&gt;（可以重命名它为config_bkp.xml类似的名字）并在同样的位置&lt;strong&gt;创建新的config.xml&lt;/strong&gt;。&lt;/div&gt;&lt;div&gt;4、（可选）如果你想在web页中预览CU3ER的话，自定义&lt;strong&gt;demo.htm&lt;/strong&gt;。否则跳过这步。务必在demo.htm的&amp;lt;script&amp;gt;标签中定义CU3ER的尺寸。&lt;/div&gt;&lt;div&gt;5、&lt;strong&gt;自定义&lt;/strong&gt;你新建的config.xml（查看下方的XML自定义指南）&lt;/div&gt;&lt;div&gt;6、&lt;strong&gt;预览并测试&lt;/strong&gt;你的CU3ER，可直接查看cu3er.swf或通过浏览器打开demo.htm。&lt;/div&gt;&lt;div&gt;7、&lt;strong&gt;持续自定义&lt;/strong&gt;xml并测试，直到你完全&lt;strong&gt;满意&lt;/strong&gt;。&lt;/div&gt;&lt;div&gt;8、从demo.htm&lt;strong&gt;复制&lt;/strong&gt;&amp;lt;script&amp;gt;标签和&amp;lt;div&amp;gt;cu3er容器到实际页面。&lt;/div&gt;&lt;div&gt;9、&lt;strong&gt;上传&lt;/strong&gt;文件到你的服务器，当cu3er.swf、config.xml、font.swf和images目录在服务器中不同的目录时，请确认为它们设置了正确的路径。&lt;/div&gt;&lt;div&gt;10、完成了，&lt;strong&gt;享受&lt;/strong&gt;它吧！&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;自定义XML指南：&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;步骤一、配置XML&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;我们已创建了新的config.xml文件并将它保存到cu3er文件夹中。让我们通过添加下列语句来配置它：&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;?xml version=&amp;rdquo;1.0&amp;Prime; encoding=&amp;rdquo;utf-8&amp;Prime; ?&amp;gt;&lt;br /&gt;&amp;lt;cu3er&amp;gt;&lt;br /&gt;&amp;lt;/cu3er&amp;gt;&lt;/span&gt;&lt;br /&gt;这时我们测试的话会看到出现错误因为CU3ER需要的图片还没在XML中定义。我们现在来加入它。&lt;/div&gt;&lt;div&gt;&lt;strong&gt;步骤二、添加幻灯片&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;让我们添加一些幻灯片（图片位于images文件夹中）&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;?xml version=&amp;rdquo;1.0&amp;Prime; encoding=&amp;rdquo;utf-8&amp;Prime; ?&amp;gt;&lt;br /&gt;&amp;lt;cu3er&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;slides&amp;gt;&lt;br /&gt;&amp;lt;slide&amp;gt;&lt;br /&gt;&amp;lt;url&amp;gt;images/slide_1.jpg&amp;lt;/url&amp;gt;&lt;br /&gt;&amp;lt;/slide&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;slide&amp;gt;&lt;br /&gt;&amp;lt;url&amp;gt;images/slide_2.jpg&amp;lt;/url&amp;gt;&lt;br /&gt;&amp;lt;/slide&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;slide&amp;gt;&lt;br /&gt;&amp;lt;url&amp;gt;images/slide_3.jpg&amp;lt;/url&amp;gt;&lt;br /&gt;&amp;lt;/slide&amp;gt;&lt;br /&gt;&amp;lt;/slides&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;/cu3er&amp;gt;&lt;/span&gt;&lt;br /&gt;因为我们还有定义任何用户界面，CU3ER会自动使用&amp;ldquo;auto play&amp;ldquo;特性每5秒循环播放幻灯片。更多CU3ER默认设置请查看XML手册中节点默认值。&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;步骤三、加入导航按钮和符号&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;在我们自定义3D效果前让我们先加入导航按钮和符号，使更方便于幻灯片中循环。我们通过加入&lt;span style="text-decoration: underline;"&gt;prev&lt;/span&gt;和&lt;span style="text-decoration: underline;"&gt;next&lt;/span&gt;&lt;strong&gt;导航按钮节点&lt;/strong&gt;来完成它，还有prev和next&lt;strong&gt;符号节点&lt;/strong&gt;，在&amp;lt;setting&amp;gt;节点中我们定义全部&lt;span style="text-decoration: underline;"&gt;用户界面&lt;/span&gt;元素和它们的&lt;span style="text-decoration: underline;"&gt;属性&lt;/span&gt;：&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;?xml version=&amp;rdquo;1.0&amp;Prime; encoding=&amp;rdquo;utf-8&amp;Prime; ?&amp;gt;&lt;br /&gt;&amp;lt;cu3er&amp;gt;&lt;br /&gt;&amp;lt;settings&amp;gt;&lt;br /&gt;&amp;lt;prev_button&amp;gt;&amp;lt;/prev_button&amp;gt;&lt;br /&gt;&amp;lt;prev_symbol&amp;gt;&amp;lt;/prev_symbol&amp;gt;&lt;br /&gt;&amp;lt;next_button&amp;gt;&amp;lt;/next_button&amp;gt;&lt;br /&gt;&amp;lt;next_symbol&amp;gt;&amp;lt;/next_symbol&amp;gt;&lt;br /&gt;&amp;lt;/settings&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;slides&amp;gt;&lt;br /&gt;&amp;lt;slide&amp;gt;&lt;br /&gt;&amp;lt;url&amp;gt;images/slide_1.jpg&amp;lt;/url&amp;gt;&lt;br /&gt;&amp;lt;/slide&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;slide&amp;gt;&lt;br /&gt;&amp;lt;url&amp;gt;images/slide_2.jpg&amp;lt;/url&amp;gt;&lt;br /&gt;&amp;lt;/slide&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;slide&amp;gt;&lt;br /&gt;&amp;lt;url&amp;gt;images/slide_3.jpg&amp;lt;/url&amp;gt;&lt;br /&gt;&amp;lt;/slide&amp;gt;&lt;br /&gt;&amp;lt;/slides&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;/cu3er&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;查看CU3ER文档中&lt;span style="text-decoration: underline;"&gt;previous_button&lt;/span&gt;、&lt;span style="text-decoration: underline;"&gt;previous_symbol&lt;/span&gt;、&lt;span style="text-decoration: underline;"&gt;next_button&lt;/span&gt;和&lt;span style="text-decoration: underline;"&gt;next_symbol&lt;/span&gt;获取它们更多特性和属性信息。&lt;/div&gt;&lt;div&gt;&lt;strong&gt;步骤四、自定义3D变换效果&lt;br /&gt;&lt;/strong&gt;每张幻灯片3D变换效果通用属性都在&amp;ldquo;变化模板&amp;rdquo;&lt;span style="text-decoration: underline;"&gt;&amp;lt;transitions&amp;gt;&lt;/span&gt;中定义。也可以重载&amp;ldquo;变换模板&amp;rdquo;&lt;span style="text-decoration: underline;"&gt;属性&lt;/span&gt;并自定义每个特殊&lt;span style="text-decoration: underline;"&gt;&amp;lt;transition&amp;gt;&lt;/span&gt;来进一步使每个3D变换不同。&lt;/div&gt;&lt;div&gt;在本例为了简单起见，我们仍使用&lt;span style="text-decoration: underline;"&gt;默认3D变换模板设置&lt;/span&gt;并通过自定义每个3D变换设置来重载。&lt;/div&gt;&lt;div&gt;让我们修改第1个和第2个幻灯片之间的变换。我们通过在两个&amp;lt;slide&amp;gt;节点间添加&amp;lt;transition&amp;gt;节点来实现。&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;?xml version=&amp;rdquo;1.0&amp;Prime; encoding=&amp;rdquo;utf-8&amp;Prime; ?&amp;gt;&lt;br /&gt;&amp;lt;cu3er&amp;gt;&lt;br /&gt;&amp;lt;settings&amp;gt;&lt;br /&gt;&amp;lt;prev_button&amp;gt;&amp;lt;/prev_button&amp;gt;&lt;br /&gt;&amp;lt;prev_symbol&amp;gt;&amp;lt;/prev_symbol&amp;gt;&lt;br /&gt;&amp;lt;next_button&amp;gt;&amp;lt;/next_button&amp;gt;&lt;br /&gt;&amp;lt;next_symbol&amp;gt;&amp;lt;/next_symbol&amp;gt;&lt;br /&gt;&amp;lt;/settings&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;slides&amp;gt;&lt;br /&gt;&amp;lt;slide&amp;gt;&lt;br /&gt;&amp;lt;url&amp;gt;images/slide_1.jpg&amp;lt;/url&amp;gt;&lt;/span&gt;&lt;span style="font-family: Courier New;"&gt;&lt;br /&gt;&amp;lt;/slide&amp;gt;&lt;br /&gt;&amp;lt;!&amp;ndash; changing transition between first &amp;amp; second slide &amp;ndash;&amp;gt;&lt;br /&gt;&amp;lt;transition num=&amp;rdquo;3&amp;Prime; slicing=&amp;rdquo;vertical&amp;rdquo; direction=&amp;rdquo;down&amp;rdquo;/&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;slide&amp;gt;&lt;br /&gt;&amp;lt;url&amp;gt;images/slide_2.jpg&amp;lt;/url&amp;gt;&lt;br /&gt;&amp;lt;/slide&amp;gt;&lt;br /&gt;&amp;lt;!&amp;ndash; transitions properties defined in transitions template &amp;ndash;&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;slide&amp;gt;&lt;br /&gt;&amp;lt;url&amp;gt;images/slide_3.jpg&amp;lt;/url&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;/slide&amp;gt;&lt;br /&gt;&amp;lt;!&amp;ndash; transitions properties defined in transitions template &amp;ndash;&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;/slides&amp;gt;&lt;br /&gt;&amp;lt;/cu3er&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;步骤五、进一步自定义3D变换&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;让我们自定义第2张和第3张幻灯片间的变换效果，我们修改切片的个数、切片和旋转的方向以及着色器（shader）类型：&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;?xml version=&amp;rdquo;1.0&amp;Prime; encoding=&amp;rdquo;utf-8&amp;Prime; ?&amp;gt;&lt;br /&gt;&amp;lt;cu3er&amp;gt;&lt;br /&gt;&amp;lt;settings&amp;gt;&lt;br /&gt;&amp;lt;prev_button&amp;gt;&amp;lt;/prev_button&amp;gt;&lt;br /&gt;&amp;lt;prev_symbol&amp;gt;&amp;lt;/prev_symbol&amp;gt;&lt;br /&gt;&amp;lt;next_button&amp;gt;&amp;lt;/next_button&amp;gt;&lt;br /&gt;&amp;lt;next_symbol&amp;gt;&amp;lt;/next_symbol&amp;gt;&lt;br /&gt;&amp;lt;/settings&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;slides&amp;gt;&lt;br /&gt;&amp;lt;slide&amp;gt;&lt;br /&gt;&amp;lt;url&amp;gt;images/slide_1.jpg&amp;lt;/url&amp;gt;&lt;br /&gt;&amp;lt;/slide&amp;gt;&lt;br /&gt;&amp;lt;!&amp;ndash; changing transition between first &amp;amp; second slide &amp;ndash;&amp;gt;&lt;br /&gt;&amp;lt;transition num=&amp;rdquo;3&amp;Prime; slicing=&amp;rdquo;vertical&amp;rdquo; direction=&amp;rdquo;down&amp;rdquo;/&amp;gt;&lt;br /&gt;&amp;lt;slide&amp;gt;&lt;br /&gt;&amp;lt;url&amp;gt;images/slide_2.jpg&amp;lt;/url&amp;gt;&lt;br /&gt;&amp;lt;/slide&amp;gt;&lt;br /&gt;&amp;lt;!&amp;ndash; changing transition between second &amp;amp; third slide &amp;ndash;&amp;gt;&lt;br /&gt;&amp;lt;transition num=&amp;rdquo;4&amp;Prime; direction=&amp;rdquo;right&amp;rdquo; shader=&amp;rdquo;phong&amp;rdquo; /&amp;gt;&lt;br /&gt;&amp;lt;slide&amp;gt;&lt;br /&gt;&amp;lt;url&amp;gt;images/slide_3.jpg&amp;lt;/url&amp;gt;&lt;br /&gt;&amp;lt;/slide&amp;gt;&lt;br /&gt;&amp;lt;!&amp;ndash; transitions properties defined in transitions template &amp;ndash;&amp;gt;&lt;br /&gt;&amp;lt;/slides&amp;gt;&lt;br /&gt;&amp;lt;/cu3er&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;正如你看到的组合和可能性是无穷的。你需要不断调整属性，直到你满意。&lt;/div&gt;&lt;div&gt;&lt;strong&gt;步骤六、更多自定义&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;让我们再添加2张幻灯片以及它们之间的变化。另外我们使用一些附加属性来给导航按钮和符号添点料：&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;?xml version=&amp;rdquo;1.0&amp;Prime; encoding=&amp;rdquo;utf-8&amp;Prime; ?&amp;gt;&lt;br /&gt;&amp;lt;cu3er&amp;gt;&lt;br /&gt;&amp;lt;settings&amp;gt;&lt;br /&gt;&amp;lt;prev_button&amp;gt;&lt;br /&gt;&amp;lt;defaults round_corners=&amp;rdquo;5,5,5,5&amp;Prime;/&amp;gt;&lt;br /&gt;&amp;lt;tweenOver tint=&amp;rdquo;0xFFFFFF&amp;rdquo; scaleX=&amp;rdquo;1.1&amp;Prime; scaleY=&amp;rdquo;1.1&amp;Prime;/&amp;gt;&lt;br /&gt;&amp;lt;tweenOut tint=&amp;rdquo;0&amp;times;000000&amp;Prime; /&amp;gt;&lt;br /&gt;&amp;lt;/prev_button&amp;gt;&lt;br /&gt;&amp;lt;prev_symbol&amp;gt;&lt;br /&gt;&amp;lt;tweenOver tint=&amp;rdquo;0&amp;times;000000&amp;Prime; /&amp;gt;&lt;br /&gt;&amp;lt;/prev_symbol&amp;gt;&lt;br /&gt;&amp;lt;next_button&amp;gt;&lt;br /&gt;&amp;lt;defaults round_corners=&amp;rdquo;5,5,5,5&amp;Prime;/&amp;gt;&lt;br /&gt;&amp;lt;tweenOver tint=&amp;rdquo;0xFFFFFF&amp;rdquo; scaleX=&amp;rdquo;1.1&amp;Prime; scaleY=&amp;rdquo;1.1&amp;Prime;/&amp;gt;&lt;br /&gt;&amp;lt;tweenOut tint=&amp;rdquo;0&amp;times;000000&amp;Prime; /&amp;gt;&lt;br /&gt;&amp;lt;/next_button&amp;gt;&lt;br /&gt;&amp;lt;next_symbol&amp;gt;&lt;br /&gt;&amp;lt;tweenOver tint=&amp;rdquo;0&amp;times;000000&amp;Prime; /&amp;gt;&lt;br /&gt;&amp;lt;/next_symbol&amp;gt;&lt;br /&gt;&amp;lt;/settings&amp;gt;&lt;br /&gt;&amp;lt;slides&amp;gt;&lt;br /&gt;&amp;lt;slide&amp;gt;&lt;br /&gt;&amp;lt;url&amp;gt;images/slide_1.jpg&amp;lt;/url&amp;gt;&lt;br /&gt;&amp;lt;/slide&amp;gt;&lt;br /&gt;&amp;lt;!&amp;ndash; changing transition between first &amp;amp; second slide &amp;ndash;&amp;gt;&lt;br /&gt;&amp;lt;transition num=&amp;rdquo;3&amp;Prime; slicing=&amp;rdquo;vertical&amp;rdquo; direction=&amp;rdquo;down&amp;rdquo;/&amp;gt;&lt;br /&gt;&amp;lt;slide&amp;gt;&lt;br /&gt;&amp;lt;url&amp;gt;images/slide_2.jpg&amp;lt;/url&amp;gt;&lt;br /&gt;&amp;lt;link&amp;gt;http://www.dangdang.com&amp;lt;/link&amp;gt;&lt;br /&gt;&amp;lt;/slide&amp;gt;&lt;br /&gt;&amp;lt;!&amp;ndash; changing transition between second &amp;amp; third slide &amp;ndash;&amp;gt;&lt;br /&gt;&amp;lt;transition num=&amp;rdquo;4&amp;Prime; direction=&amp;rdquo;right&amp;rdquo; shader=&amp;rdquo;phong&amp;rdquo; /&amp;gt;&lt;br /&gt;&amp;lt;slide&amp;gt;&lt;br /&gt;&amp;lt;url&amp;gt;images/slide_3.jpg&amp;lt;/url&amp;gt;&lt;br /&gt;&amp;lt;/slide&amp;gt;&lt;br /&gt;&amp;lt;!&amp;ndash; transitions properties defined in transitions template &amp;ndash;&amp;gt;&lt;br /&gt;&amp;lt;slide&amp;gt;&lt;br /&gt;&amp;lt;url&amp;gt;images/slide_4.jpg&amp;lt;/url&amp;gt;&lt;br /&gt;&amp;lt;/slide&amp;gt;&lt;br /&gt;&amp;lt;transition num=&amp;rdquo;6&amp;Prime; slicing=&amp;rdquo;vertical&amp;rdquo; direction=&amp;rdquo;up&amp;rdquo; shader=&amp;rdquo;flat&amp;rdquo; delay=&amp;rdquo;0.05&amp;Prime; z_multiplier=&amp;rdquo;4&amp;Prime; /&amp;gt;&lt;br /&gt;&amp;lt;slide&amp;gt;&lt;br /&gt;&amp;lt;url&amp;gt;images/slide_5.jpg&amp;lt;/url&amp;gt;&lt;br /&gt;&amp;lt;/slide&amp;gt;&lt;br /&gt;&amp;lt;!&amp;ndash; transitions properties defined in transitions template &amp;ndash;&amp;gt;&lt;br /&gt;&amp;lt;/slides&amp;gt;&lt;br /&gt;&amp;lt;/cu3er&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;就这些？&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;当然不是了！我们仅仅给出了CU3ER可能的一点皮毛。这只是一个简短的介绍，请查阅文档熟悉全部CU3ER特性和可能。随意尝试它，你会喜欢上它的！&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;&lt;span style="color: #ff0000; font-size: large;"&gt;&lt;span style="font-size: 18px;"&gt;User Guide&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;&lt;/strong&gt;&lt;p&gt;&lt;span style="font-size: 18px;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;strong&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;用户界面：&lt;/span&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;一般 &amp;lt;general&amp;gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;XML位置和结构：&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;cu3er&amp;gt;&lt;br /&gt;&amp;lt;settings&amp;gt;&lt;br /&gt;&lt;strong&gt;&amp;lt;general /&amp;gt;&lt;/strong&gt;&lt;br /&gt;&amp;lt;/settings&amp;gt;&lt;br /&gt;&amp;lt;/cu3er&amp;gt;&lt;/span&gt;&lt;br /&gt;设置幻灯片面板尺寸使它和图片尺寸匹配。然后设置面板相对于CU3ER舞台如何对齐：&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;img class="blogimg" src="http://hiphotos.baidu.com/%BF%DB%BF%DB6085969/pic/item/8c87918994947d8cbd3e1e57.jpg" width="544" height="409" small="0" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #008000;"&gt;译注：上图中蓝色矩形为幻灯片面板尺寸，白色矩形为CU3ER舞台。面板中显示的图片位于蓝色矩形中，且图片总是相对于蓝色矩形的左上角，如下所示：&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #008000;"&gt;&lt;span&gt;&lt;img class="blogimg" src="http://hiphotos.baidu.com/%BF%DB%BF%DB6085969/pic/item/d732cd4605bef19ed0c86a52.jpg" width="150" height="113" small="0" /&gt;&lt;span&gt;&lt;img class="blogimg" src="http://hiphotos.baidu.com/%BF%DB%BF%DB6085969/pic/item/c7eeda771e8b635c29388a5e.jpg" width="150" height="113" small="0" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;img class="blogimg" src="http://hiphotos.baidu.com/%BF%DB%BF%DB6085969/pic/item/943fc8f2aa611fdd9f514625.jpg" width="150" height="113" small="0" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #008000;"&gt;图片小于面板尺寸 图片和面板尺寸相等 图片大于面板尺寸&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;table style="width: 100%;" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;div&gt;属性&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;默认值&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;类型&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;描述&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;slide_panel_width&lt;/td&gt;&lt;td&gt;&lt;div&gt;900&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;数字&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;幻灯片面板宽度（和图片宽度相同）&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;div&gt;slide_panel_height&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;380&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;数字&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div&gt;幻灯片面板高度（和图片高度相同）&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;div&gt;slide_panel_horizontal_align&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;left&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;字符串&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;面板相对于CU3ER.swf水平对齐方式，可选值：left、center、right&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;slide_panel_vertical_align&lt;/td&gt;&lt;td&gt;&lt;div&gt;top&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div&gt;字符串&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;面板相对于CU3ER.swf垂直对齐方式，可选值：top、center、bottom&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;div&gt;ui_visibility_time&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;3&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;数字&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;CU3ER检测用户活动/静止（鼠标移动）。如果用户在指定的时间（单位秒）内静止，所有的UI有元素都会应用tweenOut&lt;span style="color: #008000;"&gt;（译注：UI元素可以指定tweenOut节点及其属性）&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;Debug面板 &amp;lt;debug&amp;gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;cu3er&amp;gt;&lt;br /&gt;&amp;lt;settings&amp;gt;&lt;br /&gt;&lt;strong&gt;&amp;lt;debug /&amp;gt;&lt;br /&gt;&lt;/strong&gt;&amp;lt;/settings&amp;gt;&lt;br /&gt;&amp;lt;/cu3er&amp;gt;&lt;/span&gt;&lt;br /&gt;包括本节点的话会启用Mr.DOOB stats（性能&amp;amp;内存监视界面）。&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;自动播放 &amp;lt;auto_play&amp;gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;cu3er&amp;gt;&lt;br /&gt;&amp;lt;settings&amp;gt;&lt;br /&gt;&lt;strong&gt;&amp;lt;auto_play&amp;gt;&lt;br /&gt;&lt;/strong&gt;&amp;lt;defaults &amp;hellip; /&amp;gt;&lt;br /&gt;&amp;lt;tweenIn &amp;hellip; /&amp;gt;&lt;br /&gt;&amp;lt;tweenOut &amp;hellip; /&amp;gt;&lt;br /&gt;&amp;lt;tweenOver &amp;hellip; /&amp;gt;&lt;br /&gt;&lt;strong&gt;&amp;lt;/auto_play&amp;gt;&lt;br /&gt;&lt;/strong&gt;&amp;lt;/settings&amp;gt;&lt;br /&gt;&amp;lt;/cu3er&amp;gt;&lt;br /&gt;&amp;ldquo;自动播放&amp;rdquo;特性使CU3ER自动循环播放幻灯片。本特性可以在两种缺省方式下启用：XML中不包含本节点；XML中不包含导航节点（prev_button、next_button、prev_symbol或next_symbol）。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;有两种&amp;ldquo;自动播放&amp;rdquo;指示方式：linear（直线）和circular（圆形，&lt;span style="color: #008000;"&gt;译注：类似倒计时，顺时针&lt;/span&gt;）。你还可以在两个图片之间添加缓动（tweening）。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&amp;ldquo;自动运行&amp;rdquo;可以包含下面四种节点：&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;table style="width: 100%;" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;div&gt;节点/属性&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&amp;lt;defaults/&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&amp;lt;tweenIn/&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&amp;lt;tweenOut/&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&amp;lt;tweenOver/&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;类型&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;描述&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;div&gt;symbol&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;linear&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;字符串&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;自动播放图形指示器。可选值：&amp;rdquo;circular&amp;rdquo;、&amp;rdquo;linear&amp;rdquo;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;div&gt;time&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;5&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;数字&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;自动播放两张幻灯片的间隔时间（单位秒）&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;div&gt;time&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;0.3&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div&gt;0.3&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div&gt;0.3&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;数字&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;tween持续时间（单位秒）&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;div&gt;delay&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;0&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;0&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;0&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;数字&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;tween发生前推迟时间（单位秒）&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;div&gt;x&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;0&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div&gt;数字&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;x坐标&lt;span style="color: #008000;"&gt;（译注，相对于CU3ER stage）&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;div&gt;y&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;0&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div&gt;数字&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;y坐标&lt;span style="color: #008000;"&gt;（译注，相对于CU3ER stage）&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;div&gt;width&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;swf width&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div&gt;数字&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;宽度&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;div&gt;height&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;5&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;15&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div&gt;数字&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;高度&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;div&gt;rotation&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;0&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;数字&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;角度（单位度）&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;div&gt;alpha&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;0.5&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;0&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;0.85&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;数字&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;对象&amp;alpha;透明度 范围从0～1&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;div&gt;tint&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;0&amp;times;000000&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;div&gt;16进制&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;对象颜色，16进制数字&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;div&gt;scaleX&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;1&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;数字&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;对象水平缩放比例，从0～无穷&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;div&gt;scaleY&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;1&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;数字&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div&gt;对象垂直缩放比例，从0～无穷&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&lt;strong&gt;&amp;ldquo;上一个&amp;rdquo;按钮 &amp;lt;prev_button&amp;gt; / &amp;ldquo;下一个&amp;rdquo;按钮 &amp;lt;next_button&amp;gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;cu3er&amp;gt;&lt;br /&gt;&amp;lt;settings&amp;gt;&lt;br /&gt;&lt;strong&gt;&amp;lt;prev_button&amp;gt;&lt;/strong&gt;&lt;br /&gt;&amp;lt;defaults &amp;hellip; /&amp;gt;&lt;br /&gt;&amp;lt;tweenIn &amp;hellip; /&amp;gt;&lt;br /&gt;&amp;lt;tweenOut &amp;hellip; /&amp;gt;&lt;br /&gt;&amp;lt;tweenOver &amp;hellip; /&amp;gt;&lt;br /&gt;&lt;strong&gt;&amp;lt;/prev_button&amp;gt;&lt;br /&gt;&lt;/strong&gt;&amp;lt;/settings&amp;gt;&lt;br /&gt;&amp;lt;/cu3er&amp;gt;&lt;br /&gt;导航按钮表示为一个图形图案，用户在幻灯片中导航。点击这个按钮你可以指示CU3ER执行3D变换并显示XML中定义的上一个幻灯片。请看下图显示了上一个（导航）按钮变化不同round_corners设置的图案：&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span&gt;&lt;img class="blogimg" src="http://hiphotos.baidu.com/%BF%DB%BF%DB6085969/pic/item/ed0ca48a6a61b4f60df4d208.jpg" small="0" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&lt;em&gt;&lt;/em&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;注意：&amp;ldquo;上一个&amp;rdquo;按钮在看第一张幻灯片时最后一张加载之前可能是禁用的。CU3ER会设置它的alpha属性为0.15，且使该按钮不能点击知道最后一张幻灯片加载完。&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&amp;ldquo;上一个&amp;rdquo;按钮可包含节点：&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;defaults /&amp;gt;&lt;/span&gt;：属性round_corners = &amp;ldquo;topLeftRadius, topRightRadius, bottomLeftRadius, bottomRightRadius&amp;rdquo;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;tweenIn /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;tweenOut /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;tweenOver /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-family: Courier New;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;&amp;ldquo;上一个&amp;rdquo;符号 &amp;lt;prev_symbol&amp;gt; / &amp;ldquo;下一个&amp;rdquo;符号 &amp;lt;next_symbol&amp;gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;cu3er&amp;gt;&lt;br /&gt;&amp;lt;settings&amp;gt;&lt;br /&gt;&lt;strong&gt;&amp;lt;prev_symbol&amp;gt;&lt;br /&gt;&lt;/strong&gt;&amp;lt;defaults &amp;hellip; /&amp;gt;&lt;br /&gt;&amp;lt;tweenIn &amp;hellip; /&amp;gt;&lt;br /&gt;&amp;lt;tweenOut &amp;hellip; /&amp;gt;&lt;br /&gt;&amp;lt;tweenOver &amp;hellip; /&amp;gt;&lt;br /&gt;&lt;strong&gt;&amp;lt;/prev_symbol&amp;gt;&lt;/strong&gt;&lt;br /&gt;&amp;lt;/settings&amp;gt;&lt;br /&gt;&amp;lt;/cu3er&amp;gt;&lt;/span&gt;&lt;br /&gt;有10个可选符号：&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;img class="blogimg" src="http://hiphotos.baidu.com/%BF%DB%BF%DB6085969/pic/item/8b2bb45c039cb900574e0030.jpg" small="0" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;ldquo;上一个&amp;rdquo;符号包含节点：&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;defaults /&amp;gt;&lt;/span&gt;：属性type = &amp;ldquo;number&amp;rdquo;见上面可选符号类型&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;tweenIn /&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;tweenOut /&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;tweenOver /&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;预加载 &amp;lt;preloader&amp;gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;cu3er&amp;gt;&lt;br /&gt;&amp;lt;settings&amp;gt;&lt;br /&gt;&lt;strong&gt;&amp;lt;preloader&amp;gt;&lt;/strong&gt;&lt;br /&gt;&amp;lt;defaults &amp;hellip; /&amp;gt;&lt;br /&gt;&amp;lt;tweenIn &amp;hellip; /&amp;gt;&lt;br /&gt;&amp;lt;tweenOut &amp;hellip; /&amp;gt;&lt;br /&gt;&amp;lt;tweenOver &amp;hellip; /&amp;gt;&lt;br /&gt;&lt;strong&gt;&amp;lt;/preloader&amp;gt;&lt;br /&gt;&lt;/strong&gt;&amp;lt;/settings&amp;gt;&lt;br /&gt;&amp;lt;/cu3er&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: Arial;"&gt;该特性允许你可视化追踪幻灯片加载过程。&amp;ldquo;Preloader&amp;rdquo;通过tween节点自动显示，如果请求的幻灯片还没有加载完的话。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;有两种类型&amp;ldquo;preloader&amp;rdquo;指示器：linear和circular。&lt;/div&gt;&lt;div&gt;可选包含节点：&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;defaults /&amp;gt;&lt;/span&gt;：属性 symbol = &amp;ldquo;circular&amp;rdquo; 或 &amp;ldquo;linear&amp;rdquo;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;tweenIn /&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;tweenOut /&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;描述框 &amp;lt;description&amp;gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;cu3er&amp;gt;&lt;br /&gt;&amp;lt;settings&amp;gt;&lt;br /&gt;&lt;strong&gt;&amp;lt;description&amp;gt;&lt;br /&gt;&lt;/strong&gt;&amp;lt;defaults &amp;hellip; /&amp;gt;&lt;br /&gt;&amp;lt;tweenIn &amp;hellip; /&amp;gt;&lt;br /&gt;&amp;lt;tweenOut &amp;hellip; /&amp;gt;&lt;br /&gt;&amp;lt;tweenOver &amp;hellip; /&amp;gt;&lt;br /&gt;&lt;strong&gt;&amp;lt;/description&amp;gt;&lt;br /&gt;&lt;/strong&gt;&amp;lt;/settings&amp;gt;&lt;br /&gt;&amp;lt;/cu3er&amp;gt;&lt;br /&gt;允许你给每张幻灯片包含描述（标题 和 段落）。你可以通过通用文本属性设置每个文本框的全部外观样式（字体大小、外边距、行距、间距等），还可以给每张幻灯片的描述框设置链接和链接target。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;标题文本位置总是描述框内0,0，宽度和描述框宽度相同。段落域位于标题下方，y左边依赖于标题域的高度。通过修改&amp;ldquo;margin&amp;rdquo;属性，你可以完成自定义段落和标题域的位置。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;注意：只允许使用纯文本（不包含HTML标签）&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;注意：实际文字嵌入在&amp;lt;slide&amp;gt;节点中，更多信息请参考&lt;span style="text-decoration: underline;"&gt;Slides&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;可选包含节点：&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;defaults /&amp;gt;&lt;br /&gt;round_corners&lt;br /&gt;heading_font&lt;br /&gt;heading_text_size&lt;br /&gt;heading_text_color&lt;br /&gt;heading_text_align&lt;br /&gt;heading_text_margin&lt;br /&gt;heading_text_leading&lt;br /&gt;heading_text_letterSpacing&lt;br /&gt;paragraph_font&lt;br /&gt;paragraph_text_size&lt;br /&gt;paragraph_text_color&lt;br /&gt;paragraph_text_align&lt;br /&gt;paragraph_text_margin&lt;br /&gt;paragraph_text_leading&lt;br /&gt;paragraph_text_letterSpacing&lt;br /&gt;&amp;lt;tweenIn /&amp;gt;&lt;br /&gt;&amp;lt;tweenOut /&amp;gt;&lt;br /&gt;&amp;lt;tweenOver /&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;3D变换：&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;变换模板 &amp;lt;transitions&amp;gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;cu3er&amp;gt;&lt;br /&gt;&amp;lt;settings&amp;gt;&lt;br /&gt;&amp;lt;transitions /&amp;gt;&lt;br /&gt;&amp;lt;/settings&amp;gt;&lt;br /&gt;&amp;lt;/cu3er&amp;gt;&lt;/span&gt;&lt;br /&gt;3D变化是CU3ER的核心特性。&lt;/div&gt;&lt;div&gt;注意：&amp;ldquo;变换模板&amp;rdquo;为每张幻灯片变换配置通用幻灯片变换属性。&lt;/div&gt;&lt;div&gt;可用属性：&lt;/div&gt;&lt;div&gt;&lt;strong&gt;&lt;span style="font-family: Courier New;"&gt;num&lt;/span&gt;&lt;/strong&gt; &amp;ndash; 每次变换包含的切片数&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: Courier New;"&gt;slicing&lt;/span&gt;&lt;/strong&gt; &amp;ndash; 立方体切片方向：水平或垂直&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: Courier New;"&gt;direction&lt;/span&gt;&lt;/strong&gt; - 变换方向 / 立方体旋转方向：上、下、左、右&lt;/div&gt;&lt;div&gt;&lt;strong&gt;&lt;span style="font-family: Courier New;"&gt;shader&lt;/span&gt;&lt;/strong&gt; &amp;ndash; transition shading type &amp;ndash; none, flat, phong&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;&lt;strong&gt;light_position&lt;/strong&gt;&lt;/span&gt;- 如果&amp;ldquo;shader&amp;rdquo;设置不是&amp;ldquo;none&amp;rdquo;的话，使用这个属性定义shading的x、y、z光线位置&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;&lt;strong&gt;cube_color&lt;/strong&gt;&lt;/span&gt;- during transition, some other cube faces (beside your slide faces) will most likely become visible for a short period of time and you can define their color here&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;&lt;strong&gt;z_multiplier&lt;/strong&gt;&lt;/span&gt;- z offset enables jo-jo effect of the cubes on z axis during transition&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;&lt;strong&gt;duration&lt;/strong&gt;&lt;/span&gt;- 每个被切片的立方体变换的时间&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: Courier New;"&gt;delay&lt;/span&gt;&lt;/strong&gt; &amp;ndash; time each sliced cube will wait before starting transition. Please, notice that &amp;lsquo;delay&amp;rsquo; is a cumulative value, which means it&amp;rsquo;s increasing gradually as all preceding delays are added to the delay of the cube already displayed.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;自定义变换 &amp;lt;transition&amp;gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;cu3er&amp;gt;&lt;br /&gt;&amp;lt;slides&amp;gt;&lt;br /&gt;&amp;lt;slide&amp;gt;&lt;br /&gt;&lt;strong&gt;&amp;lt;transition &amp;hellip; /&amp;gt;&lt;/strong&gt;&lt;br /&gt;&amp;lt;slide&amp;gt;&lt;br /&gt;&amp;lt;slide&amp;gt;&lt;br /&gt;&lt;strong&gt;&amp;lt;transition &amp;hellip; /&amp;gt;&lt;br /&gt;&lt;/strong&gt;&amp;lt;/slides&amp;gt;&lt;br /&gt;&amp;lt;/cu3er&amp;gt;&lt;br /&gt;最后一个&amp;lt;transition /&amp;gt;节点定义最后一张和第一张幻灯片之间的变化。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;如果你已设置了变换模板，你可以重载这些属性来自定义每个独特的3D变化。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;正如你所注意到的，上面的例子中在第二个和第三个幻灯片之间没有&amp;lt;transition /&amp;gt;节点，这种情况，变换属性由变换模板定义。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;可用属性同&amp;lt;transitions /&amp;gt;节点&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;幻灯片&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;cu3er&amp;gt;&lt;br /&gt;&amp;lt;slides&amp;gt;&lt;br /&gt;&lt;strong&gt;&amp;lt;slide&amp;gt;&lt;/strong&gt;&lt;br /&gt;&amp;lt;url&amp;gt;&lt;br /&gt;&amp;lt;link&amp;gt;&lt;br /&gt;&amp;lt;description&amp;gt;&lt;br /&gt;&amp;lt;link&amp;gt;&lt;br /&gt;&amp;lt;heading&amp;gt;&lt;br /&gt;&amp;lt;paragraph&amp;gt;&lt;br /&gt;&amp;lt;/description&amp;gt;&lt;br /&gt;&lt;strong&gt;&amp;lt;/slide&amp;gt;&lt;/strong&gt;&lt;br /&gt;&amp;lt;/slides&amp;gt;&lt;br /&gt;&amp;lt;/cu3er&amp;gt;&lt;/span&gt;&lt;br /&gt;很明显，在这里你可以定义全部幻灯片属性，例如图片地址、链接、描述。&lt;/div&gt;&lt;div&gt;可选子节点：&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;url&amp;gt;&lt;/span&gt; &amp;ndash; 指向你的图片/幻灯片。请确保在发布CU3ER之后避免&amp;ldquo;相对路径陷阱（relative path trap，？）&amp;rdquo;&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;link&amp;gt;&lt;/span&gt; &amp;ndash; 链接，用于用户点击幻灯片。可用属性：target = &amp;ldquo;&amp;rdquo;&lt;br /&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;description&amp;gt;&lt;/span&gt; 该节点是&amp;ldquo;描述框&amp;rdquo;内容的容器。它包含下面几个子节点：&lt;br /&gt;- &amp;lt;heading&amp;gt; - 标题&lt;br /&gt;- &amp;lt;paragraph&amp;gt; - 段落&lt;br /&gt;- &amp;lt;link&amp;gt; &amp;ndash; 链接，用于用户点击&amp;ldquo;描述框&amp;rdquo;，可用属性：target = &amp;ldquo;&amp;rdquo;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;字体&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;系统字体：&lt;/div&gt;&lt;div&gt;CU3ER可以使用任何你选择的系统字体来显示幻灯片标题和段落文本。你所要做的是在配置文件的&amp;lt;description&amp;gt;节点的font属性中插入字体名称。更多细节请查看&amp;ldquo;&lt;span style="text-decoration: underline;"&gt;描述框 &amp;lt;description&amp;gt;&lt;/span&gt;&amp;rdquo;。&lt;/div&gt;&lt;div&gt;自定义字体：&lt;/div&gt;&lt;div&gt;CU3ER允许你导入嵌入字体的.swf文件，你可以在现实幻灯片描述标题和段落文本中使用它。当在网页中嵌入CU3ER，你需要在javascript中定义变量&amp;ldquo;font&amp;rdquo;指向你的font.swf，CU3ER会加载这个.swf文件。&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New; color: #0000ff;"&gt;flashvars.font = &amp;ldquo;path_to_your_font.swf&amp;rdquo;;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;将字体嵌入Flash的方法：&lt;/div&gt;&lt;div&gt;1. go to your library, right-click and choose &amp;ldquo;New Font &amp;hellip;&amp;rdquo;&lt;br /&gt;2. under the &amp;ldquo;Name&amp;rdquo; field type the name of the font &amp;ldquo;myFont&amp;rdquo;&lt;br /&gt;3. select font &amp;amp; style from the respective drop down menus&lt;br /&gt;4. Click &amp;ldquo;advanced &amp;gt; linkage&amp;rdquo; and check &amp;ldquo;Export for Actionscript&amp;rdquo; and &amp;ldquo;Export in first frame&amp;rdquo;&lt;br /&gt;5. Click OK&lt;br /&gt;6. Open &amp;lsquo;ActionScript panel&amp;rsquo; and register font by typing following AS code:&lt;br /&gt;Font.registerFont(myFont);&lt;br /&gt;7. Publish this swf for Flash Player 9 with Actionscript 3&lt;br /&gt;8. Copy/move published font .swf into the desired folder and set variable &amp;lsquo;font&amp;rsquo; with the path to this .swf file inside your embedding script in order to make the CU3ER to use your defined font.&lt;/div&gt;&lt;div&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;嵌入&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;为了在网页上显示CU3ER，你需要像其他flash文件那样使用javascript将它嵌入到网页中。&lt;span style="text-decoration: underline;"&gt;SWFObject.js&lt;/span&gt;是一个广泛使用的javascript，它的主要目的是使嵌入flash文件到网页中全过程尽可能简单。&lt;/div&gt;&lt;div&gt;SWFObject.js在CU3ER的下载软件包中提供了，但你也可以在&lt;a href="http://code.google.com/p/swfobject/" target="_blank"&gt;&lt;span style="color: #787878;"&gt;这里&lt;/span&gt;&lt;/a&gt;下载。&lt;/div&gt;&lt;div&gt;下面简单介绍几步：&lt;/div&gt;&lt;div&gt;1、添加下面的script标签到你的HTML文档中的&amp;lt;head&amp;gt;元素中：&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New; color: #0000ff;"&gt;&amp;lt;script type=&amp;rdquo;text/javascript&amp;rdquo; src=&amp;rdquo;path_to_swfobject.js&amp;rdquo; tppabs=&amp;rdquo;http://www.progressivered.com/cu3er/docs/path_to_swfobject.js&amp;rdquo;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;2、然后紧接着添加：&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New; color: #0000ff;"&gt;&amp;lt;script type=&amp;rdquo;text/javascript&amp;rdquo;&amp;gt;&lt;br /&gt;var flashvars = {};&lt;br /&gt;flashvars.xml = &amp;ldquo;http://www.progressivered.com/cu3er/docs/path_to_xml.xml&amp;rdquo;;&lt;br /&gt;flashvars.font = &amp;ldquo;path_to_font.swf&amp;rdquo;/*tpa=http://www.progressivered.com/cu3er/docs/path_to_font.swf*/;&lt;br /&gt;swfobject.embedSWF(&amp;ldquo;path_to_cu3er.swf&amp;rdquo;/*tpa=http://www.progressivered.com/cu3er/docs/path_to_cu3er.swf*/, &amp;ldquo;cu3er_swf&amp;rdquo;, &amp;ldquo;960&amp;Prime;, &amp;ldquo;360&amp;Prime;, &amp;ldquo;9.0.28.0&amp;Prime;, &amp;ldquo;expressInstall.swf&amp;rdquo;/*tpa=http://www.progressivered.com/cu3er/docs/expressInstall.swf*/, flashvars, params, attributes);&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;br /&gt;3、现在在你的HTML文档的&amp;lt;body&amp;gt;标签内添加下面内容到你希望CU3ER显示的地方：&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New; color: #0000ff;"&gt;&amp;lt;div id=&amp;rdquo;cu3er_swf&amp;rdquo;&amp;gt;&lt;br /&gt;Put your alternate content here!&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;br /&gt;就这些！你设置了.swf对象脚本（步骤1），配置了SWFObject脚本（步骤2），最后定义了容器div，你希望在这里显示它（步骤3）。&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;缓动动画（Tweening) &amp;lt;tweenIn /&amp;gt;、&amp;lt;tweenOut /&amp;gt;、&amp;lt;tweenOver /&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;cu3er&amp;gt;&lt;br /&gt;&amp;lt;settings&amp;gt;&lt;br /&gt;&amp;lt;xxxxx*&amp;gt;&lt;br /&gt;&lt;strong&gt;&amp;lt;tweenIn &amp;hellip; /&amp;gt;&lt;br /&gt;&lt;/strong&gt;&lt;strong&gt;&amp;lt;tweenOut &amp;hellip; /&amp;gt;&lt;br /&gt;&lt;/strong&gt;&lt;strong&gt;&amp;lt;tweenOver &amp;hellip; /&amp;gt;&lt;br /&gt;&lt;/strong&gt;&amp;lt;/xxxxx*&amp;gt;&lt;br /&gt;&amp;lt;/settings&amp;gt;&lt;br /&gt;&amp;lt;/cu3er&amp;gt;&lt;/span&gt;&lt;br /&gt;* xxxxx &amp;ndash; 任何可用的UI节点：auto_play、description、preloader、next_button、prev_button、next_symbol或prev_symbol。&lt;/div&gt;&lt;div&gt;CU3ER允许用户方便的tween所有UI元素，可简单得通过设置UI节点相应&amp;ldquo;transition in&amp;rdquo;、&amp;ldquo;transition out&amp;rdquo;和&amp;ldquo;mouse over&amp;rdquo;事件tween属性完成。这些事件都有相应的XML节点，在这些节点上你可以定义它们的tweening参数。&lt;/div&gt;&lt;div&gt;CU3ER使用TweenMax，最广泛使用的flash tween引擎之一。因此tween设置很简单，只需要UI元素包含每个属性就像XML属性那样。&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&amp;lt;!&amp;ndash; 范例: &amp;ndash;&amp;gt;&lt;br /&gt;&amp;lt;tweenIn time=&amp;rdquo;0.7&amp;Prime; x=&amp;rdquo;50&amp;Prime; y=&amp;rdquo;200&amp;Prime; height=&amp;rdquo;35&amp;Prime; width=&amp;rdquo;35&amp;Prime; /&amp;gt;&lt;br /&gt;&amp;lt;tweenOut delay=&amp;rdquo;0.05&amp;Prime; x=&amp;rdquo;-50&amp;Prime; /&amp;gt;&lt;br /&gt;&amp;lt;tweenOver tint=&amp;rdquo;0xeef608&amp;Prime; /&amp;gt; &lt;/span&gt;&lt;br /&gt;可选的XML属性，用于在每个tween节点上定义UI元素的tweening属性：&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier New;"&gt;&lt;strong&gt;time&lt;/strong&gt; (number)&lt;br /&gt;&lt;strong&gt;delay&lt;/strong&gt; (number)&lt;br /&gt;&lt;strong&gt;x&lt;/strong&gt; (number)&lt;br /&gt;&lt;strong&gt;y&lt;/strong&gt; (number)&lt;br /&gt;&lt;strong&gt;width&lt;/strong&gt; (number)&lt;br /&gt;&lt;strong&gt;height&lt;/strong&gt; (number)&lt;br /&gt;&lt;strong&gt;rotation&lt;/strong&gt; (number 0-360 range)&lt;br /&gt;&lt;strong&gt;tint&lt;/strong&gt; (color in 0&amp;times;000000 format)&lt;br /&gt;&lt;strong&gt;alpha&lt;/strong&gt; (number &amp;ndash; range: 0-1)&lt;br /&gt;&lt;strong&gt;scaleX&lt;/strong&gt; (number &amp;ndash; range: 0-1)&lt;br /&gt;&lt;strong&gt;scaleY&lt;/strong&gt; (number &amp;ndash; range: 0-1)&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;Tween In &amp;lt;tweenIn /&amp;gt;&lt;/strong&gt;：&lt;strong&gt;定义每个元素的显示属性&lt;/strong&gt;。如果你希望自定义UI元素的位置、尺寸、颜色，你就需要在这里定义。发生在以下时刻：&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;CU3ER加载后 &amp;ndash; UI元素显示在舞台上；&lt;/div&gt;&lt;div&gt;任何3D变换完成后；&lt;/div&gt;&lt;div&gt;任何用户激活时，通过检测鼠标移动（如果UI隐藏的话）。&lt;/div&gt;&lt;div&gt;TweenIn在3D变换结束后立即发生。它的目的是定义你希望UI添加/显示在舞台上。&lt;/div&gt;注意：你不必定义所有属性。你只需定义你希望变化的。请查看XML Reference了解UI元素和它们相应tween节点的默认值。&lt;/div&gt;&lt;div&gt;&lt;strong&gt;Tween Out &amp;lt;tweenOut /&amp;gt;&lt;/strong&gt;：不要将本节点和&amp;ldquo;当鼠标移出&amp;rdquo;时间混淆！本节点配置transition out tween，它的目的是&lt;strong&gt;定义你希望UI删除/隐藏的方式&lt;/strong&gt;。发生在以下时刻：&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;仅在3D变换开始之前；&lt;/div&gt;&lt;div&gt;自动播放时间到了；&lt;/div&gt;&lt;div&gt;任何用户静止之前，&amp;lt;general&amp;gt;节点中设置的检测时间定义；&lt;/div&gt;&lt;div&gt;点击next或prev按钮/符号。&lt;/div&gt;注意：我们只需要定义希望变化的。&lt;/div&gt;&lt;div&gt;&lt;strong&gt;Tween Over &amp;lt;tweenOver /&amp;gt;&lt;/strong&gt;：&lt;/div&gt;&lt;div&gt;Tween over是交互时最普遍的特性了。CU3ER允许你定义&amp;ldquo;当鼠标放上去时&amp;rdquo;tween &amp;ndash; &lt;span style="background-color: #ffff80;"&gt;当用户放到UI元素上时发生&lt;/span&gt;。&lt;/div&gt;&lt;div&gt;你会惊讶当用户挪出UI元素时会发生什么？很简单，&amp;lt;tweenIn&amp;gt;（transition in）适用，这个元素会被设置为&amp;ldquo;正常&amp;rdquo;状态。&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/mrhgw/aggbug/2196221.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mrhgw/archive/2011/09/30/2196221.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mrhgw/archive/2011/09/28/2193982.html</id><title type="text">服务器RAID维护相关资料</title><summary type="text">原创作品，允许转载，转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://liubin.blog.51cto.com/282313/116046DELL PowerEdge 2950 服务器RAID维护相关资料DELL 服务站点：[url]www.dell.com.cn[/url]PowerEdge 800 电话：800-858-0960服务器编号：4KMNH2X快速服务编码：9954499641http://support1.ap.dell.com/cn/zh/forum/thread.asp?fid=19&amp;tid=61244硬盘槽位：0，</summary><published>2011-09-28T03:19:00Z</published><updated>2011-09-28T03:19:00Z</updated><author><name>有容乃大</name><uri>http://www.cnblogs.com/mrhgw/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mrhgw/archive/2011/09/28/2193982.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mrhgw/archive/2011/09/28/2193982.html"/><content type="html">&lt;div class="CopyrightStatement lh22"&gt;原创作品，允许转载，转载时请务必以超链接形式标明文章 &lt;a style="text-decoration: underline;" href="http://liubin.blog.51cto.com/282313/116046" target="_blank"&gt;&lt;span style="color: #015f91;" color="#015f91"&gt;原始出处&lt;/span&gt;&lt;/a&gt; 、作者信息和本声明。否则将追究法律责任。&lt;a href="http://liubin.blog.51cto.com/282313/116046"&gt;&lt;span style="color: #015f91;" color="#015f91"&gt;http://liubin.blog.51cto.com/282313/116046&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;!--正文 begin--&gt;&lt;div class="showContent"&gt;&lt;div&gt;DELL PowerEdge 2950 服务器RAID维护相关资料&lt;/div&gt;&lt;div&gt;DELL 服务站点：&lt;a href="http://www.dell.com.cn/"&gt;&lt;span style="color: #015f91;" color="#015f91"&gt;[url]www.dell.com.cn[/url]&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;PowerEdge 800 电话：800-858-0960&lt;/div&gt;&lt;div&gt;服务器编号：4KMNH2X&lt;/div&gt;&lt;div&gt;快速服务编码：9954499641&lt;/div&gt;&lt;div&gt;&lt;a href="http://support1.ap.dell.com/cn/zh/forum/thread.asp?fid=19&amp;amp;tid=61244"&gt;&lt;span style="color: #015f91;" color="#015f91"&gt;http://support1.ap.dell.com/cn/zh/forum/thread.asp?fid=19&amp;amp;tid=61244&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;硬盘槽位：0，1，2，3，4，5&lt;/div&gt;&lt;div&gt;带光驱&lt;/div&gt;&lt;div&gt;操作系统：RHEL5 ，做RAID后，安装RHEL5，不用在手动加载RAID驱动&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;----------&lt;/div&gt;&lt;div&gt;开机后，部分提示信息（本提示信息是RAID相关部分，可能出现的部分状况）&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;press ctrl+R to run configuration utility&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;HA-0 (Bus 1 Dev 0) PERC 6/i integrated&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;Fw package:6.0.2--0002&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;2 virtual Driver(s) found on the host adapter&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;1 virtual Driver(s) Degraded&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;2 virtual Driver(s) handled by BIOS&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;foreign configuration(s) found on adapter &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;press any key to continue or 'C' load the configuration utility or 'F' to import foreign configuration (s) and continue&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;按CTRL+R 后出现的界面大致如下：&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;PERC 6/i integrated BIOS configuration utility&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;VD mgmt PD mgmt Ctrl mgmt Foreign view&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;-----&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;F1- help F2-operation F5-Refresh Ctrl-N -Nextpage Ctrl -p prev-page F12-ctlr&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;常用选项内容：&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;ＶＤ　&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;ｃｏｎｔｒｏｌｌｅｒ０&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;　ｄｉｓｋｇｒｏｕｐ　０&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;　ｖｉｒｔｕａｌ　ｄｉｓｋ　１&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;　ｐｈｙｓｉｃａｌ　ｄｉｓｋ　&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;－－：－－：０４&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;　ｓｐａｃｅ　ａｌｌｏｃａｔｉｏｎ&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;ｖｉｒｔｕａｌ　ｄｉｓｋ　１&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;　ｈｏｔ　ｓｐａｒｅｓ&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;　ｄｉｓｋｇｒｏｕｐ　１&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;　．．．．．．．．&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;　．．．．．．．．&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;　．．．．．．．．&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;　．．．．．．．．&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;PD mgmt&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;prive ID Vendor size/mb type state DG &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;--:--:0 ATA xxxxx xxxx online 01&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;--:--:1 ATA xxxxx xxxx online 01&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;--:--:2 ATA xxxxx xxxx foreign &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;--:--:3 ATA xxxxx xxxx rebuild &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;--;--:4 ATA xxxxx xxxx online 02&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;在以下选中位置按F2后，出现的内容：&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;controller 0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;create new VD &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;reset config&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;foreign config -----&amp;gt; import&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;clear&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;disk group 0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;manage Ded .HS----&amp;gt; Dedicated Hotspare for disk group 0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;Delete Disk group &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;virtual disk 0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;initialization&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;consistency check&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;delete VD &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;properties&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;PD mgmt 页面中，选中某行后，&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;rebuild &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;CED blinking&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;force online&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;force offline&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;make global HS&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;remove hot spare&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;--------------------------&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;故障实例：&lt;/div&gt;&lt;div&gt;1、RAID5 一块硬盘掉线&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;2950 在0，1，2 三个硬盘槽位分别接入了 ST 1TB SATA 硬盘，配置成RAID 5 。&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;开机后发现有一块硬盘指示灯不亮，显示器上并提示如下：&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;some configured disks have been removed from your system or are no longer accessible.&lt;/div&gt;&lt;div&gt;please check you cables and also ensure all disk are present.press any key to continue,or&lt;/div&gt;&lt;div&gt;'C' to load the configuration utility.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;按 键盘 上的 C 键后，出现提示如下：&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Entering the configuration uility in this state will result in drive configuration changes .press 'Y' to continue loading the configuration utility or power off your system&lt;/div&gt;&lt;div&gt;and check your cables to ensure all disk are present and reboot&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;按 键盘 上的 Y 键后&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;进入RAID配置界面，没有看到在1 号位的 硬盘，提示：MISSING ，RAID 5 状态为&lt;/div&gt;&lt;div&gt;Degraded&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;然后重启机器后，发现 原来指示灯不亮的硬盘，指示灯开始变为橙色，后又变成绿色&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;提示：&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;Fw package:6.0.2--0002&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;2 virtual Driver(s) found on the host adapter&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;1 virtual Driver(s) Degraded&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;2 virtual Driver(s) handled by BIOS&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;foreign configuration(s) found on adapter &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;press any key to continue or 'C' load the configuration utility or 'F' to import foreign configuration (s) and continue&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;然后，在RAID配置界面里将掉线的，导入。后恢复正常后，不久该硬盘又掉线，怀疑硬盘有问题。导入的时间将近4个小时，数据量2G多，硬盘上就光一个RHEL5 定制的系统&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;" size="3"&gt;--------------&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;RAID 5 更换1块坏硬盘。0，1，2 三块插槽位配置RAID5 。1插槽位的驱动器状态由绿变橙。预报警。现更换1 处的硬盘。&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;方法1、&lt;/div&gt;&lt;div&gt;在开机状态，机器正常运行情况下，取下有问题的硬盘后，在接入新的同型号，同容量大小的硬盘，此时，可观察到，0，3 插槽位的硬盘指示状态灯亮绿色，活动状态灯绿色闪烁。1插槽位硬盘指示状态灯绿色闪烁，活动状态灯不亮。此时，1 插槽位的硬盘正在重建数据。等0，1，2 驱动器硬盘指示状态等全绿，稳定亮起时。RAID 5 重建完成&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;方法2、&lt;/div&gt;&lt;div&gt;关机，取下坏硬盘。在接入新的同型号，同容量大小的硬盘。开机，后 进入 RAID的配置界面，在 手工 重建 新硬盘的数据&lt;/div&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/mrhgw/aggbug/2193982.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mrhgw/archive/2011/09/28/2193982.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mrhgw/archive/2011/08/22/2149854.html</id><title type="text">转：好用的抓取dump的工具-ProcDump</title><summary type="text">Procdump是一个轻量级的Sysinternal团队开发的命令行工具, 它的主要目的是监控应用程序的CPU异常动向, 并在此异常时生成crash dump文件, 供研发人员和管理员确定问题发生的原因. 你还可以把它作为生成dump的工具使用在其他的脚本中.有了它, 就完全不需要在同一台服务器上使用诸如32位系统上的Debug Diag 1.1或是64位系统上的ADPlus了.问题描述===============在任务管理器里发现w3wp.exe的CPU总在49%-60%左右, 间歇性地会下降一些. 我们需要在w3wp.exe的CPU在50%以上并能维持三秒钟的情形下抓取两组dump. 如</summary><published>2011-08-22T11:08:00Z</published><updated>2011-08-22T11:08:00Z</updated><author><name>有容乃大</name><uri>http://www.cnblogs.com/mrhgw/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mrhgw/archive/2011/08/22/2149854.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mrhgw/archive/2011/08/22/2149854.html"/><content type="html">&lt;div id="cnblogs_post_body"&gt;&lt;div&gt;&lt;p&gt;Procdump是一个轻量级的Sysinternal团队开发的命令行工具, 它的主要目的是监控应用程序的CPU异常动向, 并在此异常时生成crash dump文件, 供研发人员和管理员确定问题发生的原因. 你还可以把它作为生成dump的工具使用在其他的脚本中.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;有了它, 就完全不需要在同一台服务器上使用诸如32位系统上的Debug Diag 1.1或是64位系统上的ADPlus了.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;问题描述&lt;/p&gt;&lt;p&gt;===============&lt;/p&gt;&lt;p&gt;在任务管理器里发现w3wp.exe的CPU总在49%-60%左右, 间歇性地会下降一些. 我们需要在w3wp.exe的CPU在50%以上并能维持三秒钟的情形下抓取两组dump. 如果使用debug diag或adplus的话, 会比较困难, 因为这需要等待时机并手动抓取. 容易出现抓到的dump里不包含那些引发异常的动作的情况.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;解决方案 - 救世主procdump&lt;/p&gt;&lt;p&gt;===============&lt;/p&gt;&lt;p&gt;Procdump可以很方便地帮助我们应付这种情况, 加速动作过程, 抓取正确数据集合. 它会指定的时间内监控目标进程的cpu, 并在那个点抓取一个内存快照(dump).&lt;/p&gt;&lt;p&gt;比如说:&lt;/p&gt;&lt;blockquote style="background-image: none; border-bottom: #c0c0c0 1px solid; padding-bottom: 4px; background-color: #e6e6e6; margin: 0px; padding-left: 10px; width: 974px; padding-right: 4px; color: #333333; border-top: #c0c0c0 1px solid; border-left-width: 1px; border-right: #c0c0c0 1px solid; padding-top: 4px; background-origin: initial; background-clip: initial;"&gt;&lt;p&gt;&lt;strong&gt;procdump -ma -c 50 -s 3 -n 2 5844 (Process Name or PID)&amp;nbsp;&lt;span style="font-weight: normal;" class="Apple-style-span"&gt;&lt;strong&gt;&amp;nbsp;-0 c:\dumpfile&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;/strong&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -ma&lt;/strong&gt;&amp;nbsp;生成full dump, 即包括进程的所有内存. 默认的dump格式包括线程和句柄信息.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -c&lt;/strong&gt;&amp;nbsp;在CPU使用率到达这个阀值的时候, 生成dump文件.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -s&lt;/strong&gt;&amp;nbsp;CPU阀值必须持续多少秒才抓取dump文件.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -n&lt;/strong&gt;&amp;nbsp;在该工具退出之前要抓取多少个dump文件.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;strong&gt;-o&lt;/strong&gt;&amp;nbsp;dump文件保存目录.&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;上面的命令行会监控w3wp.exe的CPU, 在CPU使用率超过百分之五十超过3秒的时候, 生成dump文件, 重复该动作两次.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;下面是该命令的一个实例记录:&lt;/p&gt;&lt;blockquote style="background-image: none; border-bottom: #c0c0c0 1px solid; padding-bottom: 4px; background-color: #e6e6e6; margin: 0px; padding-left: 10px; width: 974px; padding-right: 4px; color: #333333; border-top: #c0c0c0 1px solid; border-left-width: 1px; border-right: #c0c0c0 1px solid; padding-top: 4px; background-origin: initial; background-clip: initial;"&gt;&lt;p&gt;C:\Users\jaskis\Downloads\procdump&amp;gt;&amp;nbsp;&lt;strong&gt;procdump -ma -c 50 -s 3 -n 2 5844 -o c:\dumpfile&lt;/strong&gt;&lt;br /&gt;ProcDump v1.1 - Writes process dump files&amp;nbsp;&lt;br /&gt;Copyright (C) 2009 Mark Russinovich&amp;nbsp;&lt;br /&gt;Sysinternals -&amp;nbsp;&lt;a style="color: #1d58d1; text-decoration: none;" href="http://www.sysinternals.com/"&gt;www.sysinternals.com&lt;/a&gt;&lt;br /&gt;Process:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; w3wp.exe (5844)&amp;nbsp;&lt;br /&gt;&lt;strong&gt;CPU threshold:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 50% of system&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Duration threshold: 3s&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Number of dumps:&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/strong&gt;&lt;br /&gt;Hung window check:&amp;nbsp; Disabled&amp;nbsp;&lt;br /&gt;Exception monitor:&amp;nbsp; Disabled&amp;nbsp;&lt;br /&gt;Dump file:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C:\Users\jaskis\Downloads\procdump\w3wp.dmp&amp;nbsp;&lt;br /&gt;Time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CPU&amp;nbsp; Duration&amp;nbsp;&lt;br /&gt;[23:48.35]&amp;nbsp; 59%&amp;nbsp; 1s&amp;nbsp;&lt;br /&gt;[23:48.36]&amp;nbsp;&lt;strong&gt;CPU usage below threshold.&lt;/strong&gt;&lt;br /&gt;[23:48.37]&amp;nbsp;&amp;nbsp;&lt;strong&gt;54%&amp;nbsp; 1s&lt;/strong&gt;&lt;br /&gt;[23:48.38&lt;strong&gt;]&amp;nbsp; 55%&amp;nbsp; 2s&lt;/strong&gt;&lt;br /&gt;[23:48.39]&amp;nbsp;&amp;nbsp;&lt;strong&gt;61%&amp;nbsp; 3s&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Process has hit spike threshold.&lt;/strong&gt;&lt;br /&gt;Writing dump file C:\Users\jaskis\Downloads\procdump\w3wp_080309_114839PM.dmp... Dump written.&amp;nbsp;&lt;br /&gt;[23:48.44]&amp;nbsp;&amp;nbsp;&lt;strong&gt;61%&amp;nbsp; 1s&lt;/strong&gt;&lt;br /&gt;[23:48.45]&amp;nbsp;&amp;nbsp;&lt;strong&gt;59%&amp;nbsp; 2s&amp;nbsp;&lt;br /&gt;&lt;/strong&gt;[23:48.46]&amp;nbsp;&amp;nbsp;&lt;strong&gt;57%&amp;nbsp; 3s&amp;nbsp;&lt;br /&gt;Process has hit spike threshold.&amp;nbsp;&lt;br /&gt;&lt;/strong&gt;Writing dump file C:\Users\jaskis\Downloads\procdump\w3wp_080309_114846PM.dmp...&amp;nbsp;&lt;br /&gt;Dump written.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;下载路径:&lt;/p&gt;&lt;p&gt;ProcDump v3.01&lt;/p&gt;&lt;p&gt;&lt;a style="color: #1d58d1; text-decoration: none;" title="http://technet.microsoft.com/en-us/sysinternals/dd996900" href="http://technet.microsoft.com/en-us/sysinternals/dd996900"&gt;http://technet.microsoft.com/en-us/sysinternals/dd996900&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;译自:&lt;/p&gt;&lt;p&gt;Using ProcDump.exe to monitor w3wp.exe for CPU spikes&lt;/p&gt;&lt;p&gt;&lt;a style="color: #1d58d1; text-decoration: none;" title="http://blogs.iis.net/webtopics/archive/2009/08/07/using-procdump-exe-to-monitor-w3wp-exe-for-cpu-spikes.aspx" href="http://blogs.iis.net/webtopics/archive/2009/08/07/using-procdump-exe-to-monitor-w3wp-exe-for-cpu-spikes.aspx"&gt;http://blogs.iis.net/webtopics/archive/2009/08/07/using-procdump-exe-to-monitor-w3wp-exe-for-cpu-spikes.aspx&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;script type="text/javascript"&gt;// &lt;![CDATA[if ($ != jQuery) {$ = jQuery.noConflict();}var isLogined = true;var cb_blogId = 29848;var cb_entryId = 1978376;var cb_blogApp = "yangjunwl";var cb_blogUserGuid = "a5803d0b-63cf-dd11-9e4d-001cf0cd104b";var cb_entryCreatedDate = '2011/3/9 15:20:00';// ]]&gt;&lt;/script&gt;&lt;img src="http://www.cnblogs.com/mrhgw/aggbug/2149854.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mrhgw/archive/2011/08/22/2149854.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mrhgw/archive/2011/08/22/2149849.html</id><title type="text">Windbg调试新手入门</title><summary type="text">Windbg调试新手入门，本文记录本人初次使用Windbg调试IIS进程CPU高烧不退的经历，方便本人以后进一步学习或给有需要的同学参考！</summary><published>2011-08-22T10:58:00Z</published><updated>2011-08-22T10:58:00Z</updated><author><name>有容乃大</name><uri>http://www.cnblogs.com/mrhgw/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mrhgw/archive/2011/08/22/2149849.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mrhgw/archive/2011/08/22/2149849.html"/><content type="html">&lt;p&gt;此文仅记录本人初次使用Windbg调试IIS，方便本人或有需要的同学参考！&lt;/p&gt;&lt;p&gt;-------------------------------------------------------------------------&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: x-small;" size="2"&gt;&lt;span style="font-size: 14px;"&gt;1. WinDbg下载和安装&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Install Debugging Tools for Windows 32-bit Version&lt;br /&gt;&lt;a href="http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx"&gt;&lt;span style="color: #075db3;" color="#075db3"&gt;http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Install Debugging Tools for Windows 64-bit Versions&lt;br /&gt;&lt;a href="http://www.microsoft.com/whdc/devtools/debugging/install64bit.mspx"&gt;&lt;span style="color: #075db3;" color="#075db3"&gt;http://www.microsoft.com/whdc/devtools/debugging/install64bit.mspx&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;建议不要下载&lt;span&gt;winsdk_web.exe在线安装，超慢无法忍受，可直接下载 &lt;a href="http://msdn.microsoft.com/en-us/windows/hardware/gg487463"&gt;&lt;span style="color: #0066dd;" color="#0066dd"&gt;Windows Driver Kit (WDK)&lt;/span&gt;&lt;/a&gt; ISO image安装包(600多M好大)，安装后在安装目录打开Debuggers/windbg.exe。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="font-size: 14px;"&gt;2. 设置并下载Windbg下载符号，请按以下步骤在Windbg命令行输入指令(&lt;span style="color: #ff0000;"&gt;注意下面的.不能去掉&lt;/span&gt;)：&lt;/span&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1)&amp;nbsp;&amp;nbsp; .sympath srv*G:\WinDDK\7600.16385.1\Debuggers\Symbols*http://msdl.microsoft.com/download/symbols&amp;nbsp; &lt;span style="color: #ff0000;"&gt;(* 注意前面的绝对路径必须存在，不存在自己建立&lt;/span&gt;)。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2)&amp;nbsp;&amp;nbsp; &lt;span style="line-height: normal;"&gt;&lt;span style="line-height: normal;"&gt;!sym noisy&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3)&amp;nbsp;&amp;nbsp; .reload安装符号完成。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;3.抓取DUMP&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/strong&gt;推荐使用Procdump进行抓取(详细使用请猛击这里：&lt;a href="http://www.cnblogs.com/mrhgw/archive/2011/08/22/2149854.html" target="_blank"&gt;好用的抓取dump的工具-ProcDump&lt;/a&gt;)，也可以直接在任务管理器中右键IIS进程w3wp.exe，然后选择&amp;ldquo;创建转储文件&amp;rdquo;生成DUMP。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;4.分析DUMP&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 因为需要解决的是高CPU的问题，思路是分析某个线程在进程启动后占用的cpu时间。所以需要取多个dump，看"高CPU时间段"内"占用cpu时间增长最多"的是哪个线程，最终得到的两个文件如下(分别在任务管理器中在不同的时间段取两次DUMP)：&lt;/p&gt;&lt;p&gt;打开第一个DUMP，&lt;span style="font-family: Calibri;" face="Calibri"&gt;运行!runaway命令可以看到各线程的CPU占用总时间：&lt;/span&gt;&lt;br /&gt;Thread&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Time&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;18:fdc&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 days 1:20:28.390&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;19:1370&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 days 1:16:36.359&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;21:538&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 days 1:08:28.765&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;22:698&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 days 1:07:55.968&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;20:1180&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 days 0:58:22.046&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;138:1284&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 days 0:56:53.890&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;136:f9c&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 days 0:49:38.609&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;9:1094&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 days 0:44:26.312&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;147:db8&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 days 0:25:16.234&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;149:6f4&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 days 0:22:00.687&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;148:c8c&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 days 0:20:29.156&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;13:1108&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 days 0:01:31.562&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;12:d24&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 days 0:01:27.593&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;14:5e8&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 days 0:01:26.203&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;11:ce0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 days 0:01:06.703&lt;/p&gt;&lt;p&gt;打开第二个DUMP，&lt;span style="font-family: Calibri;" face="Calibri"&gt;运行!runaway命令可以看到各线程的CPU占用总时间：&lt;/span&gt;&lt;br /&gt;Thread&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Time&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;18:fdc&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 days 1:21:09.125&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;19:1370&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 days 1:20:20.468&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;21:538&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 days 1:08:43.140&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;22:698&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 days 1:08:28.812&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;20:1180&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 days 1:03:01.078&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;138:1284&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 days 0:57:49.281&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;136:f9c&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 days 0:55:01.250&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;9:1094&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 days 0:44:50.781&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;146:db8&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 days 0:27:10.062&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;147:c8c&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 days 0:25:17.828&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;148:6f4&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 days 0:25:03.656&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;13:1108&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 days 0:01:32.328&lt;/p&gt;&lt;p&gt;将两个DUMP中相同编号的线程结果减一下，可以得出66线程在这段时间内增长得最快，也就是说cpu这段时间内都在完成66线程的事情，那它肯定就是高cpu的原因了。&lt;br /&gt;为了查看66线程对应的托管堆栈，执行以下命令：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1) 加载sos扩展，输入.load C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SOS.dll(32位系统相应改)。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2) 运行~66 s 切换到66线程。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3) 运行!clrstack查看堆栈。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&amp;nbsp;从代码可以看出是StripHTML方法有问题，该方法执行一个正则式剔除所有HTML(取自cnblogs)，可见该方法效率十分低下！&lt;br /&gt;&lt;br /&gt;&lt;img alt="" src="http://pic002.cnblogs.com/images/2011/10683/2011082219181676.jpg" /&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;&amp;nbsp;剩下的事情就好办了，重写或弃用此方法！&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;span style="color: #ff0000;"&gt;====================== Windbg的其它指令参考 ====================== &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #ffffff; color: #000000;"&gt;&lt;span style="background-color: #ffffff; color: #000000;"&gt;!&lt;/span&gt;threadpool，查看线程池CPU使用量&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #c0c0c0;"&gt;&lt;span style="background-color: #ffffff; color: #000000;"&gt;&lt;span style="background-color: #ffffff; color: #000000;"&gt;!&lt;/span&gt;runaway，查看线程占用CPU时间，可以从中找到哪个线程占用时间更高。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #c0c0c0;"&gt;&lt;span style="background-color: #ffffff; color: #000000;"&gt;~number s，number为具体哪个线程的ID。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #c0c0c0;"&gt;&lt;span style="background-color: #ffffff; color: #000000;"&gt;&lt;span style="background-color: #ffffff; color: #000000;"&gt;!&lt;/span&gt;clrstack，到具体某个线程后，查看当前线程的托管代码&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #c0c0c0;"&gt;&lt;span style="background-color: #ffffff; color: #000000;"&gt;&lt;span style="background-color: #ffffff; color: #000000;"&gt;!&lt;/span&gt;name2ee ,找到哪个托管代码模块后，查看MethodTable,EEClass等信息。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #c0c0c0;"&gt;&lt;span style="background-color: #ffffff; color: #000000;"&gt;&lt;span style="background-color: #ffffff; color: #000000;"&gt;!&lt;/span&gt;dumpmt,找到相关MethodTable处的相关信息。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #c0c0c0;"&gt;&lt;span style="background-color: #ffffff; color: #000000;"&gt;&lt;span style="background-color: #ffffff; color: #000000;"&gt;!&lt;/span&gt;dumpmd，根据MethodDesc找到相关模块信息，比如MethodTable.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #c0c0c0;"&gt;&lt;span style="background-color: #ffffff; color: #000000;"&gt;!dumpdomain,显示所有域里的程序集，或者根据参数获取指定域。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #c0c0c0;"&gt;&lt;span style="background-color: #ffffff; color: #000000;"&gt;!savemodule,根据具体程序集地址，把当前程序集的代码生成到指定文件&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #c0c0c0;"&gt;&lt;span style="background-color: #ffffff; color: #000000;"&gt;查看占用内存过高的命令比如：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #c0c0c0;"&gt;&lt;span style="background-color: #ffffff; color: #000000;"&gt;!eeheap，查看堆中信息，可以查看到大对象。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #c0c0c0;"&gt;&lt;span style="background-color: #ffffff; color: #000000;"&gt;!dumpheap,查看堆中信息，一般带-min,-stat,-type等参数。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #c0c0c0;"&gt;&lt;span style="background-color: #ffffff; color: #000000;"&gt;!gcroot，根据堆地址，查看相关模块引用代码信息。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #c0c0c0;"&gt;&lt;span style="background-color: #ffffff; color: #000000;"&gt;其他命令当然还非常多，也非常有用，需要的时候再翻资料，如果需要很精通windbg+sos，还是老老实实仔细看吧。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #c0c0c0;"&gt;&lt;span style="background-color: #ffffff; color: #000000;"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #c0c0c0;"&gt;&lt;span style="background-color: #ffffff; color: #000000;"&gt;本文参考以下文章：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #c0c0c0;"&gt;&lt;span style="background-color: #ffffff; color: #000000;"&gt;&lt;a href="http://www.cnblogs.com/h-hello/articles/1502493.html"&gt;http://www.cnblogs.com/h-hello/articles/1502493.html&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #c0c0c0;"&gt;&lt;span style="background-color: #ffffff; color: #000000;"&gt;&lt;a href="http://www.cnblogs.com/Jesses/archive/2011/05/03/2035560.html"&gt;http://www.cnblogs.com/Jesses/archive/2011/05/03/2035560.html&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: #c0c0c0;"&gt;&lt;span style="background-color: #ffffff; color: #000000;"&gt;&lt;a href="http://www.cnblogs.com/Lawson/archive/2011/01/23/1942692.html"&gt;http://www.cnblogs.com/Lawson/archive/2011/01/23/1942692.html&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/mrhgw/aggbug/2149849.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mrhgw/archive/2011/08/22/2149849.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mrhgw/archive/2011/07/27/2118629.html</id><title type="text">手工部署Sqlserver CLR程序集</title><summary type="text">以前一直用VS部署Sqlserver CLR程序集简单省事，现在服务器部署在内网了，必须手动更新部署Sqlserver CLR程序集。 开始以为ALTER ASSEMBLY [程序集名称] FROM 'G:\AA\XX.dll'这样就OK，没想到出错然后查资料越弄越复杂，看来手工部署远没想象中这么简单，于是好好研究了一番最后终于成功，具体步骤是： 1.如果以前部署过当前程序集，则必须先删除引用当前程序集的所有模块(各类函数和存储过程等)，然后删除当前程序集。 2.重新部署当前程序集，然后再创建相关模块(各类函数和存储过程等)。 以下是一个sql模板，有需要的可以套一下： -- </summary><published>2011-07-27T09:18:00Z</published><updated>2011-07-27T09:18:00Z</updated><author><name>有容乃大</name><uri>http://www.cnblogs.com/mrhgw/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mrhgw/archive/2011/07/27/2118629.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mrhgw/archive/2011/07/27/2118629.html"/><content type="html">&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 以前一直用VS部署Sqlserver CLR程序集简单省事，现在服务器部署在内网了，必须手动更新部署Sqlserver CLR程序集。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 开始以为ALTER ASSEMBLY [程序集名称] FROM 'G:\AA\XX.dll'这样就OK，没想到出错然后查资料越弄越复杂，看来手工部署远没想象中这么简单，于是好好研究了一番最后终于成功，具体步骤是：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.如果以前部署过当前程序集，则必须先删除引用当前程序集的所有模块(各类函数和存储过程等)，然后删除当前程序集。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.重新部署当前程序集，然后再创建相关模块(各类函数和存储过程等)。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 以下是一个sql模板，有需要的可以套一下：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt; -- ================================= 删除先 ================================= --&lt;br/&gt; -- MyCLRSqlserver 为程序集部署名称&lt;br/&gt;&lt;br/&gt; IF  EXISTS (SELECT * FROM sys.assemblies asms WHERE asms.name = N'MyCLRSqlserver' and is_user_defined = 1)&lt;br/&gt; BEGIN&lt;br/&gt;  -- 删除集合函数。&lt;br/&gt;  IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[StrJoin]') AND type = N'AF')&lt;br/&gt;   DROP AGGREGATE dbo.StrJoin;&lt;br/&gt;  -- 删除标量函数。&lt;br/&gt;  IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[___fun_CLR_ChangeSalarieScope]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))&lt;br/&gt;   DROP FUNCTION dbo.___fun_CLR_ChangeSalarieScope; &lt;br/&gt;         -- 删除其它... &lt;br/&gt;  &lt;br/&gt;  -- 卸载程序集。&lt;br/&gt;  DROP ASSEMBLY [MyCLRSqlserver];&lt;br/&gt; END;&lt;br/&gt;&lt;br/&gt; -- ================================= 重新创建 ================================= --&lt;br/&gt;&lt;br/&gt; -- 注册程序集(如果是在服务器上部署，需要将此dll复制到服务器，然后修改文件地址)。&lt;br/&gt; CREATE ASSEMBLY [MyCLRSqlserver] FROM 'G:\AA\XX.dll';&lt;br/&gt;&lt;br/&gt; ---------------------- [dbo].[StrJoin] ----------------------&lt;br/&gt; CREATE AGGREGATE [dbo].[StrJoin]&lt;br/&gt; (@Value [nvarchar](4000))&lt;br/&gt; RETURNS[nvarchar](4000)&lt;br/&gt; EXTERNAL NAME [MyCLRSqlserver].[MyCLRSqlserver.StrJoin]&lt;br/&gt; GO&lt;br/&gt;&lt;br/&gt; EXEC sys.sp_addextendedproperty @name=N'AutoDeployed', @value=N'yes' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'AGGREGATE',@level1name=N'StrJoin'&lt;br/&gt; GO&lt;br/&gt;&lt;br/&gt; EXEC sys.sp_addextendedproperty @name=N'SqlAssemblyFile', @value=N'StrJoin.cs' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'AGGREGATE',@level1name=N'StrJoin'&lt;br/&gt; GO&lt;br/&gt;&lt;br/&gt; EXEC sys.sp_addextendedproperty @name=N'SqlAssemblyFileLine', @value=14 , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'AGGREGATE',@level1name=N'StrJoin'&lt;br/&gt; GO&lt;br/&gt; -- 其它函数创建过程...&lt;br/&gt;&lt;br/&gt; -- ================================= END ================================= --&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 以上是手工创建过程比较麻烦，当然如果模块不多的话这样也没问题，如果很多的话可以查当前数据库的系统视图assembly_modules获取所有CLR模块，然后写代码自动生成模块DROP和CREATE过程。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 以上是本人手工部署Sqlserver CLR程序集过程，在此做个记录方便以后随时翻阅，同时也给没有手工部署经验的同学提供参考，如果哪位有更方便智能的方法敬请告之，谢谢!&lt;/p&gt;&lt;img src="http://www.cnblogs.com/mrhgw/aggbug/2118629.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mrhgw/archive/2011/07/27/2118629.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
