<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.2.1" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>潘魏增</title>
	<link>http://panweizeng.com</link>
	<description>活在回忆里,细数时间下过的蛋.</description>
	<pubDate>Sat, 05 Jul 2008 10:55:08 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.1</generator>
	<language>en</language>
			<item>
		<title>软件使用时间统计</title>
		<link>http://panweizeng.com/archives/150</link>
		<comments>http://panweizeng.com/archives/150#comments</comments>
		<pubDate>Sat, 28 Jun 2008 16:36:21 +0000</pubDate>
		<dc:creator>Pan</dc:creator>
		
		<category><![CDATA[动态 News]]></category>

		<guid isPermaLink="false">http://panweizeng.com/archives/150</guid>
		<description><![CDATA[用timesnapper对我现在这台笔记本上的软件使用时间做了一个统计，统计周期为一个月，结果如下：

可见，在俺的业余时间，使用电脑的主要目的是上网冲浪，占据使用时间的45%（opera+iexplore+ttra... ]]></description>
			<content:encoded><![CDATA[<p>用<a href="http://www.timesnapper.com">timesnapper</a>对我现在这台笔记本上的软件使用时间做了一个统计，统计周期为一个月，结果如下：<br />
<img src="http://panweizeng.com/images/article/program_statistics.gif" alt="program statistics" /><br />
可见，在俺的业余时间，使用电脑的主要目的是上网冲浪，占据使用时间的45%（opera+iexplore+ttraveler+firefox+fterm）。其次是开发，占据使用时间的17%（devenv+editplus+pietty），然后是游戏和聊天并列9%（游戏：war3，聊天：qq+msn+skype）。结果和我预想的基本一致，除了感觉游戏有些偏高。</p>
<p>更新20080705：<br />
从<a href="http://webleon.org/2008/07/wakoopawidgetfacebook-app.html">WebLeOn&#8217;s Blog</a>了解到提供类似功能的软件还有<a href="http://wakoopa.com/">Wakoopa</a>和<a href="http://www.rescuetime.com/">RescueTime</a>。我正在试用Wakoopa。</p>
]]></content:encoded>
			<wfw:commentRss>http://panweizeng.com/archives/150/feed</wfw:commentRss>
		</item>
		<item>
		<title>有意思的魔方</title>
		<link>http://panweizeng.com/archives/149</link>
		<comments>http://panweizeng.com/archives/149#comments</comments>
		<pubDate>Mon, 09 Jun 2008 16:16:16 +0000</pubDate>
		<dc:creator>Pan</dc:creator>
		
		<category><![CDATA[学习 Learning]]></category>

		<guid isPermaLink="false">http://panweizeng.com/archives/149</guid>
		<description><![CDATA[前段时间微软给技术部送来了几个魔方，办公室就开始流行玩这个东西。有个同事是玩魔方专家，我让他给捎了一个国丙的三阶魔方，花了40人民币，质量很不错，非一般地摊货可比。然后照着... ]]></description>
			<content:encoded><![CDATA[<p><img src="http://panweizeng.com/images/rubik-small.gif" alt="魔方" class="title" />前段时间微软给技术部送来了几个魔方，办公室就开始流行玩这个东西。有个同事是玩魔方专家，我让他给捎了一个国丙的三阶魔方，花了40人民币，质量很不错，非一般地摊货可比。然后照着教程鼓捣鼓捣，基本也算可以弄全六面，当然都是照着教程一边看一边转的。</p>
<p>魔方的初级玩法一般按六步走：<br />
1.拼好底面和底面的四个棱、四个角。这一步转转就弄会了，非常简单。<br />
2.调整第二层的棱；<br />
3.顶面划十字；<br />
4.对好顶面；<br />
5.调整顶面四角顺序；<br />
6.排列好最后的棱色块。</p>
<p>每一步都有两种算法，但是其实所有的算法都是另一种算法的对角线镜像，转两遍的效果和另外一种是相同的，负负得正嘛:)，所以不追求速度的话每一步记住一种算法就可以了。</p>
<p>教程地址：<a href="http://www.rubik.com.cn/beginner.htm">魔方的入门玩法</a><br />
PDF下载：<a href="http://panweizeng.com/download/rubik-tutorial.pdf">http://panweizeng.com/download/rubik-tutorial.pdf</a><br />
为大家都能学好初级玩法，在这里特别免费放出<a href="http://panweizeng.com/images/rubik-tutorial.gif">秘笈图纸一张</a>，打印出来每天演练一遍，十日可成。</p>
<p><strong>更新(20080621):</strong><br />
我已经可以脱离教程和图纸完成六面。</p>
]]></content:encoded>
			<wfw:commentRss>http://panweizeng.com/archives/149/feed</wfw:commentRss>
		</item>
		<item>
		<title>工作变化</title>
		<link>http://panweizeng.com/archives/148</link>
		<comments>http://panweizeng.com/archives/148#comments</comments>
		<pubDate>Sat, 31 May 2008 03:41:26 +0000</pubDate>
		<dc:creator>Pan</dc:creator>
		
		<category><![CDATA[动态 News]]></category>

		<guid isPermaLink="false">http://panweizeng.com/archives/148</guid>
		<description><![CDATA[昨天办完了交接手续，正式从凤凰新媒体(www.ifeng.com)离职，如果一切顺利的话，我将在6月初加盟一个做SNS社区的创业团队。
从毕业入职到现在刚好满两年，要离开已经熟悉的人和熟悉的事情，... ]]></description>
			<content:encoded><![CDATA[<p>昨天办完了交接手续，正式从凤凰新媒体(<a href="http://www.ifeng.com">www.ifeng.com</a>)离职，如果一切顺利的话，我将在6月初加盟一个做SNS社区的创业团队。</p>
<p>从毕业入职到现在刚好满两年，要离开已经熟悉的人和熟悉的事情，有点感伤。在工作交接的两周时间，每天都恍恍惚惚，好像我是在做梦一样，怀疑自己是不是真的做出了离职的决定。每天都一如既往地按时上班，每天中午聚餐的时候也都和同事们海阔天空的聊天，每天晚上回家才发现距离最后的离职日期又少了一天。</p>
<p>在凤凰的两年，是我职业生涯的第一步。在这两年中我有很多的收获，技术能力和业务经验都有了一些积累，在人际交往方面也有很大的长进（这个方面最大的收获就是要经常站在别人的角度考虑问题）。部门在2006年和2007年都获得了优秀团队的奖励，这是我最值得骄傲的事情。昨天资讯中心的刘老师请我在魏公村的鑫百万吃饭，每人三瓶啤酒下肚之后，得知我在资讯中心的口碑还是比较高的，工作也得到了编辑们的肯定。凤凰所有共事的同学们，多谢了。</p>
<p>离职的原因很简单，我想有一个拼命学习的环境，把技术能再提高一些。那为什么一定要离开凤凰呢？其实我也不算是真的离开，加入凤凰的时候自己注定这辈子是个凤凰人，说不定只是一次暂别。最后祝凤凰新媒体的事业蒸蒸日上，更上一层楼，也希望自己在互联网行业能走得更远。</p>
]]></content:encoded>
			<wfw:commentRss>http://panweizeng.com/archives/148/feed</wfw:commentRss>
		</item>
		<item>
		<title>有意思的lambda表达式</title>
		<link>http://panweizeng.com/archives/147</link>
		<comments>http://panweizeng.com/archives/147#comments</comments>
		<pubDate>Sun, 25 May 2008 08:28:05 +0000</pubDate>
		<dc:creator>Pan</dc:creator>
		
		<category><![CDATA[学习 Learning]]></category>

		<guid isPermaLink="false">http://panweizeng.com/archives/147</guid>
		<description><![CDATA[有这么一种场景，有一个Category的实体类对应着一个名为Category的数据库表。Category类中有Name和Path属性，在新建或更新Category对象时要保证这两个属性在数据库中的值唯一。当然你可以在数据库... ]]></description>
			<content:encoded><![CDATA[<p>有这么一种场景，有一个Category的实体类对应着一个名为Category的数据库表。Category类中有Name和Path属性，在新建或更新Category对象时要保证这两个属性在数据库中的值唯一。当然你可以在数据库中的Name和Path字段都建一个唯一索引，那如果不采用这种做法应该怎么做呢？最简单的方法就是写两个名为CheckNameValid和CheckPathValid的函数。很明显这种做法不易于维护，比如说当Category类增加其他需要保证唯一的属性或者属性名字需要改变的时候。我的写法如下：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">/// &lt;summary&gt;</span></li>
<li><span style="color: #ffa500;">/// 检查数据库字段中的值是否唯一</span></li>
<li><span style="color: #ffa500;">/// &lt;/summary&gt;</span></li>
<li><span style="color: #ffa500;">/// &lt;param name=&quot;t&quot;&gt;Cateroy的集合&lt;/param&gt;</span></li>
<li><span style="color: #ffa500;">/// &lt;param name=&quot;func&quot;&gt;表达式&lt;/param&gt;</span></li>
<li><span style="color: #ffa500;">/// &lt;param name=&quot;isNew&quot;&gt;是否是新建Category&lt;/param&gt;</span></li>
<li><span style="color: #ffa500;">/// &lt;returns&gt;&lt;/returns&gt;</span></li>
<li><span style="color: Green;">protected</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">bool</span><span style="color: Gray;"> </span><span style="color: Blue;">CheckValid</span><span style="color: Olive;">(</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">IEnumerable</span><span style="color: Gray;">&lt;</span><span style="color: Blue;">Category</span><span style="color: Gray;">&gt; </span><span style="color: Blue;">t</span><span style="color: Gray;">, </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">Func</span><span style="color: Gray;">&lt;</span><span style="color: Blue;">Category</span><span style="color: Gray;">, </span><span style="color: Blue;">Boolean</span><span style="color: Gray;">&gt; </span><span style="color: Blue;">func</span><span style="color: Gray;">, </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">bool</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">isNew</span><span style="color: Olive;">)</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">Category</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">c</span><span style="color: Gray;"> = </span><span style="color: Blue;">t</span><span style="color: Gray;">.</span><span style="color: Blue;">SingleOrDefault</span><span style="color: Olive;">(</span><span style="color: Blue;">func</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Blue;">isNew</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">c</span><span style="color: Gray;"> == </span><span style="color: Green;">null</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">else</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">c</span><span style="color: Gray;"> == </span><span style="color: Green;">null</span><span style="color: Gray;"> || </span><span style="color: Olive;">(</span><span style="color: Blue;">c</span><span style="color: Gray;"> != </span><span style="color: Green;">null</span><span style="color: Gray;"> &amp;&amp; </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">ID</span><span style="color: Gray;"> == </span><span style="color: Blue;">Convert</span><span style="color: Gray;">.</span><span style="color: Blue;">ToInt32</span><span style="color: Olive;">(</span><span style="color: Blue;">ID</span><span style="color: Gray;">.</span><span style="color: Blue;">Text</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">//调用方法一</span></li>
<li><span style="color: Green;">protected</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">Func</span><span style="color: Gray;">&lt;</span><span style="color: Blue;">Category</span><span style="color: Gray;">, </span><span style="color: Blue;">Boolean</span><span style="color: Gray;">&gt; </span><span style="color: Blue;">func</span><span style="color: Gray;"> = </span><span style="color: Green;">null</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">protected</span><span style="color: Gray;">&nbsp;</span><span class="hl-types">void</span><span style="color: Gray;"> </span><span style="color: Blue;">Page_Load</span><span style="color: Olive;">(</span><span style="color: Blue;">object</span><span style="color: Gray;"> </span><span style="color: Blue;">sender</span><span style="color: Gray;">, </span><span style="color: Blue;">EventArgs</span><span style="color: Gray;"> </span><span style="color: Blue;">e</span><span style="color: Olive;">)</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">func</span><span style="color: Gray;"> = </span><span style="color: Blue;">selectCategory</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Green;">protected</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">bool</span><span style="color: Gray;"> </span><span style="color: Blue;">selectCategory</span><span style="color: Olive;">(</span><span style="color: Blue;">Category</span><span style="color: Gray;"> </span><span style="color: Blue;">c</span><span style="color: Olive;">)</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">Name</span><span style="color: Gray;"> == </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">Name</span><span style="color: Gray;">.</span><span style="color: Blue;">Text</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">CheckValid</span><span style="color: Olive;">(</span><span style="color: Blue;">kr</span><span style="color: Gray;">.</span><span style="color: Blue;">Categories</span><span style="color: Gray;">, </span><span style="color: Blue;">selectCategory</span><span style="color: Gray;">, </span><span style="color: Green;">true</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #ffa500;">//调用方法二</span></li>
<li><span style="color: Blue;">CheckValid</span><span style="color: Olive;">(</span><span style="color: Blue;">kr</span><span style="color: Gray;">.</span><span style="color: Blue;">Categories</span><span style="color: Gray;">, </span><span style="color: Blue;">delegate</span><span style="color: Olive;">(</span><span style="color: Blue;">Category</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">c</span><span style="color: Olive;">){</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">Name</span><span style="color: Gray;"> == </span><span style="color: Blue;">Name</span><span style="color: Gray;">.</span><span style="color: Blue;">Text</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; , </span><span style="color: Green;">true</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">CheckValid</span><span style="color: Olive;">(</span><span style="color: Blue;">kr</span><span style="color: Gray;">.</span><span style="color: Blue;">Categories</span><span style="color: Gray;">, </span><span style="color: Blue;">delegate</span><span style="color: Olive;">(</span><span style="color: Blue;">Category</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">c</span><span style="color: Olive;">){</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">Path</span><span style="color: Gray;"> == </span><span style="color: Blue;">Path</span><span style="color: Gray;">.</span><span style="color: Blue;">Text</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; , </span><span style="color: Green;">false</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #ffa500;">//调用方法三</span></li>
<li><span style="color: Blue;">CheckValid</span><span style="color: Olive;">(</span><span style="color: Blue;">kr</span><span style="color: Gray;">.</span><span style="color: Blue;">Categories</span><span style="color: Gray;">, </span><span style="color: Blue;">c</span><span style="color: Gray;"> =&gt; </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">Name</span><span style="color: Gray;"> == </span><span style="color: Blue;">Name</span><span style="color: Gray;">.</span><span style="color: Blue;">Text</span><span style="color: Gray;">, </span><span style="color: Green;">true</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">CheckValid</span><span style="color: Olive;">(</span><span style="color: Blue;">kr</span><span style="color: Gray;">.</span><span style="color: Blue;">Categories</span><span style="color: Gray;">, </span><span style="color: Blue;">c</span><span style="color: Gray;"> =&gt; </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">Path</span><span style="color: Gray;"> == </span><span style="color: Blue;">Path</span><span style="color: Gray;">.</span><span style="color: Blue;">Text</span><span style="color: Gray;">, </span><span style="color: Green;">false</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
<p>三种调用方法，当然是使用了lambda表达式的方法三最简洁明了。还可以扩展一下，可以把它写成某个Utility类泛型静态方法，专门检查实体类在数据库字段中的值是否唯一，这时Convert.ToInt32(ID.Text)就要抽出来做成一个参数，这里不就写了。</p>
<p>另外在<a href="http://songthin.spaces.live.com/default.aspx">瘦子师兄</a>的点拨下，发现C# 3.0里面有个类似Javascript中prototype的概念，称为扩展方法(Extension Methods)，在System.Linq中运用了大量的扩展方法（例如前面例子中的SingleOrDefault）。扩展方法貌似没prototype灵活，比较的例子如下：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">public</span><span style="color: Gray;"> </span><span class="hl-types">static</span><span style="color: Gray;"> </span><span style="color: Green;">class</span><span style="color: Gray;"> </span><span style="color: Blue;">Program</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span class="hl-types">static</span><span style="color: Gray;"> </span><span class="hl-types">void</span><span style="color: Gray;"> </span><span style="color: Blue;">Main</span><span style="color: Olive;">(</span><span style="color: Blue;">string</span><span style="color: Gray;"> </span><span style="color: Olive;">[]</span><span style="color: Gray;"> </span><span style="color: Blue;">args</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">string</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">s</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Hello World</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">s</span><span style="color: Gray;">.</span><span style="color: Blue;">Print</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">s</span><span style="color: Gray;">.</span><span style="color: Blue;">ToString</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">Console</span><span style="color: Gray;">.</span><span style="color: Blue;">WriteLine</span><span style="color: Olive;">(</span><span style="color: Blue;">s</span><span style="color: Gray;">.</span><span style="color: Blue;">ToString</span><span style="color: Olive;">())</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">Console</span><span style="color: Gray;">.</span><span style="color: Blue;">Read</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span class="hl-types">static</span><span style="color: Gray;"> </span><span style="color: Green;">class</span><span style="color: Gray;"> </span><span style="color: Blue;">Tools</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span class="hl-types">static</span><span style="color: Gray;"> </span><span class="hl-types">void</span><span style="color: Gray;"> </span><span style="color: Blue;">Print</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Gray;"> </span><span style="color: Blue;">string</span><span style="color: Gray;"> </span><span style="color: Blue;">s</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">Console</span><span style="color: Gray;">.</span><span style="color: Blue;">WriteLine</span><span style="color: Olive;">(</span><span style="color: Blue;">s</span><span style="color: Gray;">.</span><span style="color: Blue;">ToUpper</span><span style="color: Olive;">())</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span class="hl-types">static</span><span style="color: Gray;"> </span><span class="hl-types">void</span><span style="color: Gray;"> </span><span style="color: Blue;">ToString</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Gray;"> </span><span style="color: Blue;">string</span><span style="color: Gray;"> </span><span style="color: Blue;">s</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">Console</span><span style="color: Gray;">.</span><span style="color: Blue;">WriteLine</span><span style="color: Olive;">(</span><span style="color: Blue;">s</span><span style="color: Gray;">.</span><span style="color: Blue;">ToUpper</span><span style="color: Olive;">())</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">A</span><span style="color: Olive;">(){</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">name</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">AA</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">A</span><span style="color: Gray;">.</span><span style="color: Blue;">prototype</span><span style="color: Gray;"> = </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">show</span><span style="color: Gray;">:</span><span style="color: Blue;">function</span><span style="color: Olive;">(){</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">alert</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">name</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">a1</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">A</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">a1</span><span style="color: Gray;">.</span><span style="color: Blue;">show</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: #ffa500;">//直接覆写A的prototype中的show</span></li>
<li><span style="color: Blue;">A</span><span style="color: Gray;">.</span><span style="color: Blue;">prototype</span><span style="color: Gray;">.</span><span style="color: Blue;">show</span><span style="color: Gray;"> = </span><span style="color: Blue;">function</span><span style="color: Olive;">(){</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">alert</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">modified:</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">+</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">name</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">a2</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">A</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">a2</span><span style="color: Gray;">.</span><span style="color: Blue;">name</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">a2</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">a2</span><span style="color: Gray;">.</span><span style="color: Blue;">show</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li></ol></div>
<p>对于一个你不能修改源代码的类，可以通过这种方式为它添加方法。但这个只是编译期的（s.Print()翻译成tools.Print(s)），也就是说编译之后是不能通过反射来取得它的，它并不是要扩展类（例子中的String类）中的真正方法，而是某个静态类（例子中的Tools）的静态方法。<br />
具体介绍参见这篇文章<a href="http://msdn.microsoft.com/en-us/vcsharp/bb905825.aspx">Deep Dive on Extension Methods</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://panweizeng.com/archives/147/feed</wfw:commentRss>
		</item>
		<item>
		<title>静态列表页的分页</title>
		<link>http://panweizeng.com/archives/146</link>
		<comments>http://panweizeng.com/archives/146#comments</comments>
		<pubDate>Sat, 24 May 2008 14:12:06 +0000</pubDate>
		<dc:creator>Pan</dc:creator>
		
		<category><![CDATA[学习 Learning]]></category>

		<guid isPermaLink="false">http://panweizeng.com/archives/146</guid>
		<description><![CDATA[相比于动态网站的列表页分页，静态列表页的分页是件麻烦的事情。因为旧的列表页发布出去以后就无法知道之后发布的总页数，而且也不可能每次更新列表页时去更新所有以前发布过的列表... ]]></description>
			<content:encoded><![CDATA[<p>相比于动态网站的列表页分页，静态列表页的分页是件麻烦的事情。因为旧的列表页发布出去以后就无法知道之后发布的总页数，而且也不可能每次更新列表页时去更新所有以前发布过的列表页（频道树节点多时，这个量非常大），所以一般的CMS处理得都比较简单。比如说<a href="http://www.sina.com.cn/">新浪</a>很多频道的<a href="http://news.sina.com.cn/world/important/2008-05-21/index.html">列表页</a>都是按日期归档的，一天发表的文章生成一个列表页，而有些专题的<a href="http://news.sina.com.cn/z/08earthquake/4.shtml">子频道列表页</a>直接就没有处理分页。<a href="http://www.ifeng.com">凤凰网</a>的<a href="http://news.ifeng.com/special/0512earthquake/rollnews/doclist_170.shtml">列表页分页</a>就只有上一页和下一页的链接，系统在处理的时候就更新两个列表页-当前最新的列表页和最后更新过的列表页，规则是当上次处理分页后更新的文章数大于等于三分之五Pagesize时进行分页操作。<a href="http://www.sohu.com">搜狐</a>的<a href="http://news.sohu.com/s2008/2551/s256802552/index_235.shtml">列表页</a>就要复杂一些，有列表页首页链接，有输入页码跳转等，在页尾的Javascript脚本中里面有一个变量maxPage，猜测应该是后期include包含进去的。</p>
<p>在最近的一个项目中，对列表页的分页处理比上面说的几种要复杂一些。不看代码，<a href="http://panweizeng.com/others/itv_playlist_paging/index.html">先看效果</a>。<br />
这里的静态列表页是这样的，最早发布出去的第一页是列表页名字_1.html， 第二页是列表页名字_2.html，以此类推，到最后一页就是最新的一页是列表页名字.html或者列表页名字_列表页总页数.html。</p>
<p>下面是代码</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">Paging</span><span style="color: Gray;"> = </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">holder</span><span style="color: Gray;">:</span><span style="color: #8b0000;">'</span><span style="color: Red;">paging</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">currentNo</span><span style="color: Gray;">:</span><span style="color: Maroon;">1</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">currentFileName</span><span style="color: Gray;">:</span><span style="color: #8b0000;">''</span><span style="color: Gray;">,</span><span style="color: #ffa500;">//当前文件名，不包括后缀名和页码</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">listSize</span><span style="color: Gray;">:</span><span style="color: Maroon;">10</span><span style="color: Gray;">,</span><span style="color: #ffa500;">//列表项链接的显示数目</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">totalNo</span><span style="color: Gray;">:</span><span style="color: Maroon;">35</span><span style="color: Gray;">,</span><span style="color: #ffa500;">//列表页总页数</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">//初始化currentFileName和currentNo</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">preRender</span><span style="color: Gray;">:</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">_lastIndex</span><span style="color: Gray;"> = </span><span style="color: Blue;">location</span><span style="color: Gray;">.</span><span style="color: Blue;">href</span><span style="color: Gray;">.</span><span style="color: Blue;">lastIndexOf</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">/</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">_fileName</span><span style="color: Gray;"> = </span><span style="color: Blue;">location</span><span style="color: Gray;">.</span><span style="color: Blue;">href</span><span style="color: Gray;">.</span><span style="color: Blue;">substr</span><span style="color: Olive;">(</span><span style="color: Blue;">_lastIndex</span><span style="color: Gray;">+</span><span style="color: Maroon;">1</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">matchItem</span><span style="color: Gray;"> = </span><span style="color: Blue;">_fileName</span><span style="color: Gray;">.</span><span style="color: Blue;">match</span><span style="color: Olive;">(</span><span style="color: #8b0000;">/</span><span style="color: Red;">(.*)_(\d+).html</span><span style="color: #8b0000;">/i</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Blue;">matchItem</span><span style="color: Gray;"> != </span><span style="color: Green;">null</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">currentFileName</span><span style="color: Gray;"> = </span><span style="color: Blue;">matchItem</span><span style="color: Olive;">[</span><span style="color: Maroon;">1</span><span style="color: Olive;">]</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">currentNo</span><span style="color: Gray;"> = </span><span style="color: Blue;">parseInt</span><span style="color: Olive;">(</span><span style="color: Blue;">matchItem</span><span style="color: Olive;">[</span><span style="color: Maroon;">2</span><span style="color: Olive;">])</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">else</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">currentFileName</span><span style="color: Gray;"> = </span><span style="color: Blue;">_fileName</span><span style="color: Gray;">.</span><span style="color: Blue;">split</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">.</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)[</span><span style="color: Maroon;">0</span><span style="color: Olive;">]</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">currentNo</span><span style="color: Gray;"> = </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">totalNo</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">render</span><span style="color: Gray;">:</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//在页面上显示的页码</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">realNo</span><span style="color: Gray;"> = </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">totalNo</span><span style="color: Gray;"> - </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">currentNo</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//页码对listSize的倍数</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">tens</span><span style="color: Gray;"> = </span><span style="color: Teal;">Math</span><span style="color: Gray;">.</span><span style="color: Blue;">floor</span><span style="color: Olive;">(</span><span style="color: Blue;">realNo</span><span style="color: Gray;"> </span><span style="color: #8b0000;">/</span><span style="color: Red;"> this.listSize);</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #8b0000;">//</span><span style="color: Red;">页码对listSize的余数</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; var units =&nbsp; realNo % this.listSize;</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; var html = '';</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; html += '&lt;span&gt;&lt;a href=&quot;'+this.currentFileName+'.html&quot;&gt;首页&lt;</span><span style="color: #8b0000;">/</span><span style="color: Blue;">a</span><span style="color: Gray;">&gt;&lt;</span><span style="color: #8b0000;">/</span><span style="color: Red;">span&gt;';</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #8b0000;">//</span><span style="color: Red;">如果不是在第一个listSize，例如第一个十页，就显示上一页</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; if(tens != 0) {</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; html += '&lt;span&gt;'</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; +'&lt;a href=&quot;'+this.currentFileName+'_'+(this.currentNo+1)</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; +'.html&quot;&gt;上一页&lt;</span><span style="color: #8b0000;">/</span><span style="color: Blue;">a</span><span style="color: Gray;">&gt;&lt;</span><span style="color: #8b0000;">/</span><span style="color: Red;">span&gt;';</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; }</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; var _no=0,_linkNo=0,_isCurrent=false;</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; for(var i = 1 ; i &lt; this.listSize+1 ; i++){</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _no = tens*this.listSize+i;</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #8b0000;">//</span><span style="color: Red;">链接为倒序</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _linkNo = this.totalNo - _no + 1;</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _isCurrent = i == units+1 ? true : false;</span></li>
<li><span style="color: Red;">&nbsp;</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #8b0000;">//</span><span style="color: Red;">到达最后一页就退出</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(_linkNo &lt; 1) break;</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #8b0000;">//</span><span style="color: Red;">是否当前页</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(_isCurrent)</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; html += '&lt;span class=&quot;current&quot;&gt;';</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else </span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; html += '&lt;span&gt;';</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #8b0000;">//</span><span style="color: Red;">是否是列表页第一页</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(_no != 1 &amp;&amp; !_isCurrent)</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; html += '&lt;a href=&quot;'+this.currentFileName+'_'+_linkNo.toString()+'.html&quot;&gt;';</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else if (!_isCurrent)</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; html += '&lt;a href=&quot;'+this.currentFileName+'.html&quot;&gt;';</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; html += _no.toString();</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; html += '&lt;</span><span style="color: #8b0000;">/</span><span style="color: Blue;">a</span><span style="color: Gray;">&gt;</span><span style="color: #8b0000;">'</span><span style="color: Red;">;</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; html += </span><span style="color: #8b0000;">'</span><span style="color: Gray;">&lt;</span><span style="color: #8b0000;">/</span><span style="color: Red;">span&gt;';</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; }</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #8b0000;">//</span><span style="color: Red;">如果没到最后一个listSize，显示下一页</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; if(tens != Math.floor(this.totalNo </span><span style="color: #8b0000;">/</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">listSize</span><span style="color: Olive;">)</span><span style="color: Gray;">) </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">html</span><span style="color: Gray;"> += </span><span style="color: #8b0000;">'</span><span style="color: Red;">&lt;span&gt;&lt;a href=&quot;</span><span style="color: #8b0000;">'</span><span style="color: Gray;">+</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">currentFileName</span><span style="color: Gray;">+</span><span style="color: #8b0000;">'</span><span style="color: Red;">_</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; +</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">currentNo</span><span style="color: Gray;">-</span><span style="color: Maroon;">1</span><span style="color: Olive;">)</span><span style="color: Gray;">+</span><span style="color: #8b0000;">'</span><span style="color: Red;">.html&quot;&gt;下一页&lt;/a&gt;&lt;/span&gt;</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">html</span><span style="color: Gray;"> += </span><span style="color: #8b0000;">'</span><span style="color: Red;">&lt;span&gt;&lt;a href=&quot;</span><span style="color: #8b0000;">'</span><span style="color: Gray;">+</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">currentFileName</span><span style="color: Gray;">+</span><span style="color: #8b0000;">'</span><span style="color: Red;">_1.html&quot;&gt;末页&lt;/a&gt;&lt;/span&gt;</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">holder</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">innerHTML</span><span style="color: Gray;"> = </span><span style="color: Blue;">html</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">init</span><span style="color: Gray;">:</span><span style="color: Green;">function</span><span style="color: Olive;">(){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">preRender</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">render</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">Paging</span><span style="color: Gray;">.</span><span style="color: Blue;">init</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li></ol></div>
<p>其中代码中的Paging.totalNo是列表页的总数，这个是后期加入的。目前可以想到两种方法给脚本传递这个值，一个就是像搜狐一样在页面中include进去一个后期更新的文件，另外还有比较别扭的方法，就是最后更新的列表页传入一个值，形如doclist.html?535，后续打开的页面都会带着这个值，如果万一不是从第一页进入的比如从搜索引擎过来的话，在页面中会记录一个该列表当时发布的总页数作为补充。最后还是决定使用搜狐的方法，在更新最新的列表页时同时新发一个记录列表页总数的文件。另外为了SEO，可以专门做一个汇总归档页，当然也可以由CMS生成上一页和下一页的链接，这些方法都是容易做到的。</p>
<p>脚本浏览地址：<a href="http://panweizeng.com/others/itv_playlist_paging/paging.js">http://panweizeng.com/others/itv_playlist_paging/paging.js</a></p>
]]></content:encoded>
			<wfw:commentRss>http://panweizeng.com/archives/146/feed</wfw:commentRss>
		</item>
		<item>
		<title>默哀三分钟</title>
		<link>http://panweizeng.com/archives/145</link>
		<comments>http://panweizeng.com/archives/145#comments</comments>
		<pubDate>Mon, 19 May 2008 14:16:43 +0000</pubDate>
		<dc:creator>Pan</dc:creator>
		
		<category><![CDATA[动态 News]]></category>

		<guid isPermaLink="false">http://panweizeng.com/archives/145</guid>
		<description><![CDATA[为表达全国各族人民对四川汶川大地震遇难同胞的深切哀悼，国务院决定，2008年5月19日至21日为全国哀悼日。今天（5月19日）14时28分，公司给每人发了一朵白玫瑰，全体起立默哀三分钟。... ]]></description>
			<content:encoded><![CDATA[<p>为表达全国各族人民对四川汶川大地震遇难同胞的深切哀悼，国务院决定，2008年5月19日至21日为全国哀悼日。今天（5月19日）14时28分，公司给每人发了一朵白玫瑰，全体起立默哀三分钟。</p>
]]></content:encoded>
			<wfw:commentRss>http://panweizeng.com/archives/145/feed</wfw:commentRss>
		</item>
		<item>
		<title>立春是部好电影</title>
		<link>http://panweizeng.com/archives/144</link>
		<comments>http://panweizeng.com/archives/144#comments</comments>
		<pubDate>Sun, 18 May 2008 10:37:51 +0000</pubDate>
		<dc:creator>Pan</dc:creator>
		
		<category><![CDATA[动态 News]]></category>

		<guid isPermaLink="false">http://panweizeng.com/archives/144</guid>
		<description><![CDATA[尽管看的是阉割版，但依然能看出这是一部极为优秀的作品，其中蒋雯丽的演技可圈可点。看到梦想去巴黎唱歌剧而现实生活潦倒的王彩铃（蒋雯丽饰演），我马上想到了另一位同样热爱歌剧... ]]></description>
			<content:encoded><![CDATA[<p>尽管看的是阉割版，但依然能看出这是一部极为优秀的作品，其中蒋雯丽的演技可圈可点。看到梦想去巴黎唱歌剧而现实生活潦倒的王彩铃（蒋雯丽饰演），我马上想到了另一位同样热爱歌剧的有理想青年<a href="http://www.google.com/search?client=opera&#038;rls=en&#038;q=Paul+Potts&#038;sourceid=opera&#038;ie=utf-8&#038;oe=utf-8">Paul Potts</a>。对于理想青年来说，王彩铃带给我们的是幻灭，Paul带来的则是希望。关于立春的介绍和精彩点评，可以到<a href="http://www.douban.com/subject/3036997/">豆瓣上面</a>看看。</p>
<p>让Paul再感动我们一把！</p>
<p><object width="400" height="300">
<param name="movie" value="http://www.tudou.com/v/NKPhCqCjv_o"></param>
<param name="allowScriptAccess" value="always"></param>
<param name="wmode" value="transparent"></param><embed src="http://www.tudou.com/v/NKPhCqCjv_o" type="application/x-shockwave-flash" width="400" height="300" allowFullScreen="true" wmode="transparent" allowScriptAccess="always"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://panweizeng.com/archives/144/feed</wfw:commentRss>
		</item>
		<item>
		<title>高中同学聚会</title>
		<link>http://panweizeng.com/archives/143</link>
		<comments>http://panweizeng.com/archives/143#comments</comments>
		<pubDate>Sun, 11 May 2008 15:03:41 +0000</pubDate>
		<dc:creator>Pan</dc:creator>
		
		<category><![CDATA[动态 News]]></category>

		<guid isPermaLink="false">http://panweizeng.com/archives/143</guid>
		<description><![CDATA[趁着邓羽同学来京视察的机会，原来柳州地区高中021班的部分核心骨干成员今天晚上六点（2008年5月11日）在老根据地川军本色饭店举行了老邓来京欢迎晚宴。赴宴人员有老潘、老邓、沈雪、保... ]]></description>
			<content:encoded><![CDATA[<p>趁着邓羽同学来京视察的机会，原来柳州地区高中021班的部分核心骨干成员今天晚上六点（2008年5月11日）在老根据地川军本色饭店举行了老邓来京欢迎晚宴。赴宴人员有老潘、老邓、沈雪、保智、老蒋、老古、温暖姐姐、阿牛以及远道而来的阿昌哥共九人。聚餐的桌子离上次阿冲女友出国践行宴会所在的桌子仅一拳之隔。时光荏苒，遥想当时阿冲在桌上意气风发，音容宛在。</p>
<p>此次宴会之上，爆料频出。聊起当年，尤其是以温暖姐姐为首的忻城女孩，多少精英少男，均成为她们的裙下之臣。俱往矣，同学们，为各自的理想继续努力吧。</p>
]]></content:encoded>
			<wfw:commentRss>http://panweizeng.com/archives/143/feed</wfw:commentRss>
		</item>
		<item>
		<title>在跑步机上跑一万米的心得</title>
		<link>http://panweizeng.com/archives/139</link>
		<comments>http://panweizeng.com/archives/139#comments</comments>
		<pubDate>Sat, 03 May 2008 07:17:01 +0000</pubDate>
		<dc:creator>Pan</dc:creator>
		
		<category><![CDATA[学习 Learning]]></category>

		<guid isPermaLink="false">http://panweizeng.com/archives/139</guid>
		<description><![CDATA[if(你.经常锻炼 == true &#124;&#124; 你.意志力强 == true)  return;
1.万米跑这种耐力运动最大的敌人是你的身体。
2.运动前的几个小时应该保证摄入充足的食物，饿着肚子跑是不现实的。这些食物应该... ]]></description>
			<content:encoded><![CDATA[<p><strong>if(你.经常锻炼 == true || 你.意志力强 == true)  return;</strong></p>
<p>1.万米跑这种耐力运动最大的敌人是你的身体。<br />
2.运动前的几个小时应该保证摄入充足的食物，饿着肚子跑是不现实的。这些食物应该含有足够的碳水化合物，米饭和馒头都是不错的选择。<br />
3.穿着舒适的运动裤和上衣，要保证一双合脚的布鞋或者跑鞋，不好的鞋容易引起膝关节的损伤。<br />
4.准备一个随身听（Mp3或磁带机均可），播放一些快节奏的曲目，分散自己的注意力。<br />
5.运动前需要进行热身，快走和慢跑都可以，这个非常关键。热身使运动神经开始兴奋，身体开始进入运动状态，能有效防止运动的损伤和过度的疲劳感。<br />
6.根据自己的身体调整运动的节奏。我一般是：10-20分钟快走（6km/h）热身，10分钟慢速跑（8km/h），10分钟快速跑（12km/h），10分钟快走，10分钟慢速跑，10分钟中速跑（10km/h），10分钟快走，10分钟慢速跑，最后10分钟快走结束。这样70-90分钟就能完成万米跑。<br />
7.运动中及时补充身体的水分。纯净水和运动饮料都可以，但是注意不要暴饮，否则会加重胃部的负担。<br />
8.如果很久都没有参加运动了，前面几次应该量力而为，不要勉强自己。因为长期不运动，心肺功能跟不上，大脑会容易缺氧，万一晕倒在跑步机上面就要受伤了。<br />
9.如果跑步的目的和我一样，减脂不减肌肉，那么就要好好把握一下运动的时间。我之前的《<a href="http://panweizeng.com/archives/117">减肥参考数据</a>》文章中提到，我认为最佳运动时间应该在[1,1.5]（单位：小时）之间。另外，即使你身上有很多的肥肉，但是运动也应该适量，毛主席教导我们：贵有恒，何必三更眠五更起；最无益，只怕一日暴十日寒。运动要持之以恒，偶尔突击一下肯定是不行的。</p>
]]></content:encoded>
			<wfw:commentRss>http://panweizeng.com/archives/139/feed</wfw:commentRss>
		</item>
		<item>
		<title>Flash版倒计时</title>
		<link>http://panweizeng.com/archives/142</link>
		<comments>http://panweizeng.com/archives/142#comments</comments>
		<pubDate>Sat, 03 May 2008 07:05:26 +0000</pubDate>
		<dc:creator>Pan</dc:creator>
		
		<category><![CDATA[学习 Learning]]></category>

		<guid isPermaLink="false">http://panweizeng.com/archives/142</guid>
		<description><![CDATA[原作品是06世界杯临近期间英文雅虎页面上的阿迪达斯倒计时牌冠名广告。设计富有金属质感，属于我比较喜欢的风格。反编译以后发现代码比较乱，然后手就有点痒，再然后就有了下面的代码... ]]></description>
			<content:encoded><![CDATA[<p>原作品是06世界杯临近期间<a href="http://www.yahoo.com/">英文雅虎</a>页面上的<a href="http://us.a1.yimg.com/us.yimg.com/a/ad/adidas/ukcountdown_220x85_122005.swf">阿迪达斯倒计时牌冠名广告</a>。设计富有金属质感，属于我比较喜欢的风格。反编译以后发现代码比较乱，然后手就有点痒，再然后就有了下面的代码。<br />
首先是<a href="http://www.panweizeng.com/others/CountDown.as">CountDown</a>的类，其中handler是Function类型的公有变量，该函数将用于处理怎么显示倒计时代码。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">class</span><span style="color: Gray;"> </span><span style="color: Blue;">CountDown</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">private</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">finalTime</span><span style="color: Gray;">:</span><span style="color: Teal;">Date</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">private</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">currentTime</span><span style="color: Gray;">:</span><span style="color: Teal;">Date</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">private</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">timeDiff</span><span style="color: Gray;">:</span><span style="color: Teal;">Number</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">handler</span><span style="color: Gray;">:</span><span style="color: Teal;">Function</span><span style="color: Gray;"> = </span><span style="color: Green;">null</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">CountDown</span><span style="color: Olive;">(</span><span style="color: Blue;">date</span><span style="color: Gray;">:</span><span style="color: Teal;">Date</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">finalTime</span><span style="color: Gray;"> = </span><span style="color: Blue;">date</span><span style="color: Gray;"> != </span><span style="color: Green;">null</span><span style="color: Gray;"> ? </span><span style="color: Blue;">date</span><span style="color: Gray;"> : </span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp;</span><span style="color: Teal;">Date</span><span style="color: Olive;">(</span><span style="color: Maroon;">1900</span><span style="color: Gray;">, </span><span style="color: Maroon;">0</span><span style="color: Gray;">, </span><span style="color: Maroon;">0</span><span style="color: Gray;">, </span><span style="color: Maroon;">0</span><span style="color: Gray;">, </span><span style="color: Maroon;">0</span><span style="color: Gray;">, </span><span style="color: Maroon;">0</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">private</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">init</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span><span style="color: Blue;">Void</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">currentTime</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp;</span><span style="color: Teal;">Date</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">timeDiff</span><span style="color: Gray;"> = </span><span style="color: Blue;">finalTime</span><span style="color: Gray;">.</span><span style="color: Blue;">getTime</span><span style="color: Olive;">()</span><span style="color: Gray;"> - </span><span style="color: Blue;">currentTime</span><span style="color: Gray;">.</span><span style="color: Blue;">getTime</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">timeDiff</span><span style="color: Gray;"> &lt; </span><span style="color: Maroon;">0</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">timeDiff</span><span style="color: Gray;"> = </span><span style="color: Maroon;">0</span><span style="color: Gray;">;&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">run</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span><span style="color: Blue;">Void</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">init</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">_day</span><span style="color: Gray;">:</span><span style="color: Teal;">Number</span><span style="color: Gray;"> = </span><span style="color: Teal;">Math</span><span style="color: Gray;">.</span><span style="color: Blue;">floor</span><span style="color: Olive;">(</span><span style="color: Blue;">timeDiff</span><span style="color: #8b0000;">/</span><span style="color: Red;">(1000*60*60*24));</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; var _hour:Number = Math.floor((timeDiff</span><span style="color: #8b0000;">/</span><span style="color: Olive;">(</span><span style="color: Maroon;">1000</span><span style="color: Gray;">*</span><span style="color: Maroon;">60</span><span style="color: Gray;">*</span><span style="color: Maroon;">60</span><span style="color: Olive;">))</span><span style="color: Gray;">%</span><span style="color: Maroon;">24</span><span style="color: Gray;">);</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">_minute</span><span style="color: Gray;">:</span><span style="color: Teal;">Number</span><span style="color: Gray;"> = </span><span style="color: Teal;">Math</span><span style="color: Gray;">.</span><span style="color: Blue;">floor</span><span style="color: Olive;">((</span><span style="color: Blue;">timeDiff</span><span style="color: #8b0000;">/</span><span style="color: Red;">(1000*60))%60);</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; &nbsp; var _second:Number = Math.floor((timeDiff</span><span style="color: #8b0000;">/</span><span style="color: Maroon;">1000</span><span style="color: Olive;">)</span><span style="color: Gray;">%</span><span style="color: Maroon;">60</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">show</span><span style="color: Olive;">(</span><span style="color: Blue;">_day</span><span style="color: Gray;">,</span><span style="color: Blue;">_hour</span><span style="color: Gray;">,</span><span style="color: Blue;">_minute</span><span style="color: Gray;">,</span><span style="color: Blue;">_second</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">private</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">show</span><span style="color: Olive;">(</span><span style="color: Blue;">day</span><span style="color: Gray;">:</span><span style="color: Teal;">Number</span><span style="color: Gray;">, </span><span style="color: Blue;">hour</span><span style="color: Gray;">:</span><span style="color: Teal;">Number</span><span style="color: Gray;">, </span><span style="color: Blue;">minute</span><span style="color: Gray;">:</span><span style="color: Teal;">Number</span><span style="color: Gray;">, </span><span style="color: Blue;">second</span><span style="color: Gray;">:</span><span style="color: Teal;">Number</span><span style="color: Olive;">)</span><span style="color: Gray;">:</span><span style="color: Blue;">Void</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Blue;">handler</span><span style="color: Gray;"> != </span><span style="color: Green;">null</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">handler</span><span style="color: Olive;">(</span><span style="color: Blue;">day</span><span style="color: Gray;">,</span><span style="color: Blue;">hour</span><span style="color: Gray;">,</span><span style="color: Blue;">minute</span><span style="color: Gray;">,</span><span style="color: Blue;">second</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>在倒计时影片剪辑中加入以下代码，其中1和2两个位置的判断很重要。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">cd</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">CountDown</span><span style="color: Olive;">(</span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Teal;">Date</span><span style="color: Olive;">(</span><span style="color: Maroon;">2012</span><span style="color: Gray;">, </span><span style="color: Maroon;">8</span><span style="color: Gray;">, </span><span style="color: Maroon;">22</span><span style="color: Gray;">, </span><span style="color: Maroon;">0</span><span style="color: Gray;">, </span><span style="color: Maroon;">0</span><span style="color: Gray;">, </span><span style="color: Maroon;">0</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">oldDigitString</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">000000000</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">doStart</span><span style="color: Olive;">(</span><span style="color: Blue;">day</span><span style="color: Gray;">,</span><span style="color: Blue;">hour</span><span style="color: Gray;">,</span><span style="color: Blue;">minute</span><span style="color: Gray;">,</span><span style="color: Blue;">second</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">doShow</span><span style="color: Olive;">(</span><span style="color: Blue;">digitFix</span><span style="color: Olive;">(</span><span style="color: Blue;">day</span><span style="color: Gray;">,</span><span style="color: Maroon;">4</span><span style="color: Olive;">)</span><span style="color: Gray;">+</span><span style="color: Blue;">digitFix</span><span style="color: Olive;">(</span><span style="color: Blue;">hour</span><span style="color: Gray;">,</span><span style="color: Maroon;">2</span><span style="color: Olive;">)</span><span style="color: Gray;">+</span><span style="color: Blue;">digitFix</span><span style="color: Olive;">(</span><span style="color: Blue;">minute</span><span style="color: Gray;">,</span><span style="color: Maroon;">2</span><span style="color: Olive;">)</span><span style="color: Gray;">+</span><span style="color: Blue;">digitFix</span><span style="color: Olive;">(</span><span style="color: Blue;">second</span><span style="color: Gray;">,</span><span style="color: Maroon;">2</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">doShow</span><span style="color: Olive;">(</span><span style="color: Blue;">digitString</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Blue;">oldDigitString</span><span style="color: Gray;"> == </span><span style="color: Blue;">digitString</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">return</span><span style="color: Gray;">;</span><span style="color: #ffa500;">//1.</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">for</span><span style="color: Olive;">(</span><span style="color: Green;">var</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">i</span><span style="color: Gray;"> = </span><span style="color: Maroon;">0</span><span style="color: Gray;">; </span><span style="color: Blue;">i</span><span style="color: Gray;"> &lt; </span><span style="color: Blue;">digitString</span><span style="color: Gray;">.</span><span style="color: Blue;">length</span><span style="color: Gray;">; </span><span style="color: Blue;">i</span><span style="color: Gray;">++</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Olive;">(</span><span style="color: Blue;">oldDigitString</span><span style="color: Gray;">.</span><span style="color: Blue;">charAt</span><span style="color: Olive;">(</span><span style="color: Blue;">i</span><span style="color: Olive;">)</span><span style="color: Gray;"> != </span><span style="color: Blue;">digitString</span><span style="color: Gray;">.</span><span style="color: Blue;">charAt</span><span style="color: Olive;">(</span><span style="color: Blue;">i</span><span style="color: Olive;">))</span><span style="color: #ffa500;">//2.</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">doDisplay</span><span style="color: Olive;">(</span><span style="color: Blue;">eval</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">d_</span><span style="color: #8b0000;">'</span><span style="color: Gray;">+</span><span style="color: Blue;">i</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: Blue;">oldDigitString</span><span style="color: Gray;">.</span><span style="color: Blue;">charAt</span><span style="color: Olive;">(</span><span style="color: Blue;">i</span><span style="color: Olive;">)</span><span style="color: Gray;">,</span><span style="color: Blue;">digitString</span><span style="color: Gray;">.</span><span style="color: Blue;">charAt</span><span style="color: Olive;">(</span><span style="color: Blue;">i</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">oldDigitString</span><span style="color: Gray;"> = </span><span style="color: Blue;">digitString</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">doDisplay</span><span style="color: Olive;">(</span><span style="color: Blue;">o</span><span style="color: Gray;">,</span><span style="color: Blue;">oldNum</span><span style="color: Gray;">,</span><span style="color: Blue;">newNum</span><span style="color: Olive;">){</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">o</span><span style="color: Gray;">.</span><span style="color: Blue;">_prev</span><span style="color: Gray;"> = </span><span style="color: Blue;">oldNum</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">o</span><span style="color: Gray;">.</span><span style="color: Blue;">_next</span><span style="color: Gray;"> = </span><span style="color: Blue;">newNum</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">o</span><span style="color: Gray;">.</span><span style="color: Blue;">gotoAndPlay</span><span style="color: Olive;">(</span><span style="color: Maroon;">2</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">digitFix</span><span style="color: Olive;">(</span><span style="color: Blue;">num</span><span style="color: Gray;">,</span><span style="color: Blue;">len</span><span style="color: Olive;">)</span><span style="color: Gray;">:</span><span style="color: Teal;">String</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">while</span><span style="color: Olive;">(</span><span style="color: Blue;">num</span><span style="color: Gray;">.</span><span style="color: Blue;">toString</span><span style="color: Olive;">()</span><span style="color: Gray;">.</span><span style="color: Blue;">length</span><span style="color: Gray;"> &lt; </span><span style="color: Blue;">len</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">num</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">'</span><span style="color: Red;">0</span><span style="color: #8b0000;">'</span><span style="color: Gray;">+</span><span style="color: Blue;">num</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">num</span><span style="color: Gray;">.</span><span style="color: Blue;">toString</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">cd</span><span style="color: Gray;">.</span><span style="color: Blue;">handler</span><span style="color: Gray;"> = </span><span style="color: Blue;">doStart</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Blue;">onEnterFrame</span><span style="color: Gray;"> = </span><span style="color: Green;">function</span><span style="color: Olive;">()</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">cd</span><span style="color: Gray;">.</span><span style="color: Blue;">run</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>剽窃后的成果-_-!<br />
<script language="javascript" type="text/javascript" src="http://www.panweizeng.com/images/swfobject.js" ></script></p>
<div id="playerDiv-356">
对不起，您的浏览器禁用脚本或者您的Flash播放器版本较低！请点击<a class="blue" href="http://www.macromedia.com/go/getflashplayer/">这里</a>获取最新版本。
</div>
<p><script>
var fo = new SWFObject("http://www.panweizeng.com/others/countdown.swf", "countdown", "238", "85", 8, "#000000");
fo.write("playerDiv-356");
</script></p>
<p>其中这里的终点时间是我30岁的生日，到倒计时牌都是0000000000的时候，不知道我会不会哭泣……</p>
]]></content:encoded>
			<wfw:commentRss>http://panweizeng.com/archives/142/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
