<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[晨风]]></title>
<link>http://www.cenfun.com/blog/</link>
<description><![CDATA[CenFun]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[cenfun@gmail.com(晨风)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>晨风</title>
	<url>http://www.cenfun.com/blog/images/logos.gif</url>
	<link>http://www.cenfun.com/blog/</link>
	<description>晨风</description>
</image>

			<item>
			<link>http://www.cenfun.com/blog/article/scripts/137.htm</link>
			<title><![CDATA[img的onload应用]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Thu,12 Mar 2009 18:39:33 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=137</guid>
		<description><![CDATA[<p>从Flickr搜索图片，可以取到图片的大图和小图两个地址，一般点击小图直接显示大图。<br />
实际应用中为了更好的显示大图，比如要显示时位置屏幕居中，尺寸大小适当等等，就要用到img的onload事件<br />
<br />
我们可以在小图加载完时(触发onload)获取到图片宽高比，然后再点击显示大图<br />
1，根据容器大小以及图片宽高比指定大图的宽和高<br />
2，另将其小图放在大图的下面，并指定同样的大小和设定一个透明度<br />
这样在大图未完全加载前，可以显示一个固定尺寸的模糊图<br />
&lt;style type=&quot;text/css&quot;&gt;<br />
#img_small { width:100px; height:80px; overflow:hidden; border:1px solid #CCCCCC; text-align:center; }<br />
#img_big { display:none; }<br />
&lt;/style&gt;<br />
&lt;div id=&quot;img_small&quot;&gt;&lt;img width=&quot;100&quot; onload=&quot;fixImgSize(this, 'http://farm1.static.flickr.com/94/238465753_2f4f3019da.jpg', 'http://farm1.static.flickr.com/94/238465753_2f4f3019da_t.jpg');&quot; src=&quot;http://farm1.static.flickr.com/94/238465753_2f4f3019da_t.jpg&quot; /&gt;&lt;/div&gt;<br />
&lt;div id=&quot;img_big&quot;&gt;&lt;/div&gt;<br />
&lt;script type=&quot;text/javascript&quot;&gt;<br />
function fixImgSize(img, burl, surl) {<br />
&nbsp;&nbsp;&nbsp; var img_width = img.width;<br />
&nbsp;&nbsp;&nbsp; var img_height = img.height;<br />
&nbsp;&nbsp;&nbsp; var img_wh = img_width/img_height;<br />
&nbsp;&nbsp;&nbsp; if (img_height &gt; 80) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; img.height = 80;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; img.width = img_wh*80;<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; img.style.cursor = &quot;pointer&quot;;<br />
&nbsp;&nbsp;&nbsp; img.onclick = function() {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; imgZoomIn(img_wh, burl, surl);<br />
&nbsp;&nbsp;&nbsp; }<br />
}<br />
<br />
function imgZoomIn(img_wh, burl, surl) {<br />
&nbsp;&nbsp;&nbsp; var default_width = 500;<br />
&nbsp;&nbsp;&nbsp; var img_width = default_width;<br />
&nbsp;&nbsp;&nbsp; var img_height = img_width/img_wh;<br />
&nbsp;&nbsp;&nbsp; if (img_height &gt; default_width) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; img_height = default_width;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; img_width = img_wh * img_height;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; var htm = '';<br />
&nbsp;&nbsp;&nbsp; htm += '&lt;div style=&quot;width:'+img_width+'px;height:'+img_height+'px;overflow:hidden;position:relative;border:1px solid #CCCCCC;&quot;&gt;';<br />
&nbsp;&nbsp;&nbsp; htm += '&lt;img style=&quot;opacity:0.5;filter:alpha(opacity=50);&quot; src=&quot;'+surl+'&quot; width=&quot;'+img_width+'&quot; height=&quot;'+img_height+'&quot; /&gt;';<br />
&nbsp;&nbsp;&nbsp; htm += '&lt;div style=&quot;position:absolute;left:0px;top:0px;&quot;&gt;&lt;img src=&quot;'+burl+'&quot; width=&quot;'+img_width+'&quot; height=&quot;'+img_height+'&quot; /&gt;&lt;/div&gt;';<br />
&nbsp;&nbsp;&nbsp; htm += '&lt;/div&gt;';<br />
&nbsp;&nbsp;&nbsp; var img_big = document.getElementById(&quot;img_big&quot;);<br />
&nbsp;&nbsp;&nbsp; img_big.innerHTML = htm;<br />
&nbsp;&nbsp;&nbsp; img_big.style.display = &quot;block&quot;;<br />
}<br />
&lt;/script&gt;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/136.htm</link>
			<title><![CDATA[CSS透明度opacity]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Wed,11 Mar 2009 10:51:06 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=136</guid>
		<description><![CDATA[<p>IE用filter，且透明度为百分比</p>
<p>style=&quot;opacity:0.5;filter:alpha(opacity=50);&quot;</p>
<p>但实际应用时，IE总是出点小问题，如下面的代码，IE下就没有透明效果：</p>
<p>&lt;div style=&quot;opacity:0.5;filter:alpha(opacity=50);background:#000000;padding:10px 10px;&quot;&gt;<br />
&nbsp; &lt;div style=&quot;background:#ff0000;height:50px;&quot;&gt;&lt;/div&gt;<br />
&lt;/div&gt;</p>
<p>原因是微软 filter 滤镜要求 hasLayout=true 方可执行，hasLayout=false 元素返回的 clientWidth/clientHeight 属性也都是是0，但hasLayout 又不可写，即不能手动指定。</p>
<p>默认具有hasLayout的元素：<br />
<br />
&nbsp;&nbsp;&nbsp; *&nbsp; &lt;html&gt;, &lt;body&gt;<br />
&nbsp;&nbsp;&nbsp; * &lt;table&gt;, &lt;tr&gt;, &lt;th&gt;, &lt;td&gt;<br />
&nbsp;&nbsp;&nbsp; * &lt;img&gt;<br />
&nbsp;&nbsp;&nbsp; * &lt;hr&gt;<br />
&nbsp;&nbsp;&nbsp; * &lt;input&gt;, &lt;button&gt;, &lt;select&gt;, &lt;textarea&gt;, &lt;fieldset&gt;, &lt;legend&gt;<br />
&nbsp;&nbsp;&nbsp; * &lt;iframe&gt;, &lt;embed&gt;, &lt;object&gt;, &lt;applet&gt;<br />
&nbsp;&nbsp;&nbsp; * &lt;marquee&gt;</p>
<p>没有div，故需要写个样式触发一下hasLayout：</p>
<p>position: absolute<br />
float: left|right<br />
display: inline-block<br />
width: any value other than 'auto'<br />
height: any value other than 'auto'<br />
zoom: any value other than 'normal'<br />
writing-mode: tb-rl<br />
...</p>
<p>指定一个width:100%或height:100px之类的即可，纯属淘汰品</p>
<p>详情：http://www.satzansatz.de/cssd/onhavinglayout.html</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/135.htm</link>
			<title><![CDATA[一个牛3D flash站 动物园]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Sun,08 Mar 2009 18:49:31 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=135</guid>
		<description><![CDATA[<p>感觉比当前主流flash 3D引擎的系统消耗都少，但不开源！</p>
<p><a target="_blank" href="http://ecodazoo.com/">http://ecodazoo.com/</a></p>
<p><iframe height="500" src="http://ecodazoo.com/loader.swf" frameborder="0" width="550"></iframe></p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/134.htm</link>
			<title><![CDATA[ZIP (file format)]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Tue,24 Feb 2009 11:20:03 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=134</guid>
		<description><![CDATA[<p>as3通过ByteArray能支持zip格式文件的解压缩和压缩操作，现在主要有：</p>
<p>1，Fzip：<a href="http://codeazur.com.br/lab/fzip/ " target="_blank">http://codeazur.com.br/lab/fzip/ </a></p>
<p>2，nochump-ziplib： <a href="http://www.nochump.com/blog/?p=15   " target="_blank">http://www.nochump.com/blog/?p=15</a></p>
<p>3，ASZip： <a href="http://www.bytearray.org/?p=105" target="_blank">http://www.bytearray.org/?p=105</a>&nbsp; (<a href="http://code.google.com/p/aszip/" target="_blank">http://code.google.com/p/aszip/</a>)</p>
<p>4，ZipArchive： <a href="http://www.riaidea.com/blog/archives/35.html" target="_blank">http://www.riaidea.com/blog/archives/35.html</a></p>
<p>实际用的时候会有一些问题，比如：</p>
<p>1，读取速度的考虑，一次性读出所有文件数据，还是只记录文件信息，需要时再从流读出</p>
<p>2，不支持中文文件名问题，需要转码，前1，2，3国外写的类支持都不好</p>
<p>3，文件名区分大小写问题，这样读取指定文件名的文件数据时，不能取得</p>
<p>总之，这些小问题，都可以自行解决，因为这里有详细的zip格式说明，找到问题原因，具体情况具体分析，修改上面的类即可解决：</p>
<p><a href="http://www.pkware.com/documents/casestudies/APPNOTE.TXT" target="_blank">http://www.pkware.com/documents/casestudies/APPNOTE.TXT</a></p>
<p><a href="http://en.wikipedia.org/wiki/ZIP_(file_format)" target="_blank">http://en.wikipedia.org/wiki/ZIP_(file_format)</a></p>
<p><img alt="" src="http://upload.wikimedia.org/wikipedia/en/b/b3/ZIPformat.jpg" /></p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/133.htm</link>
			<title><![CDATA[sharedEvents干得不错]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Mon,23 Feb 2009 17:06:59 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=133</guid>
		<description><![CDATA[<p>用共享事件跨级传递对象(数据)<br />
<br />
先需自定义一个SharedEvents事件，将传递的对象(数据)放入data：<br />
var sharedEvents:SharedEvents = new SharedEvents(&quot;MAIN_EVENT&quot;, true, true, data);<br />
加载子影片后向其LoaderInfo发送共享事件：<br />
loader.contentLoaderInfo.sharedEvents.dispatchEvent(sharedEvents);<br />
子影片中需设置监听共享事件：<br />
this.loaderInfo.sharedEvents.addEventListener(&quot;MAIN_EVENT&quot;, onEvent);<br />
在onEvent可输出传递来的对象(数据)：<br />
trace(e.data);<br />
<br />
经尝试，一般数据类型都可以传递，stage和this对象也可以传递，传递过去还可访问到private定义的私有数据<br />
<br />
在网上搜到说stage和Document Class会有警告，但这里却没有发现，可能没有放到真正的跨域环境中测试</p>
<p>&nbsp;</p>
<p>package {<br />
&nbsp;&nbsp;&nbsp; import flash.events.*;<br />
&nbsp;&nbsp;&nbsp; public class SharedEvents extends Event {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; public var data:*;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; public function SharedEvents(type:String, bubble:Boolean = true, cancelable:Boolean = true, sharedData:* = null) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; super(type, bubble, cancelable);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this.data = sharedData;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
}</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/132.htm</link>
			<title><![CDATA[解决IE下AS3初始化时stage宽高为0的bug]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Mon,23 Feb 2009 15:01:05 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=132</guid>
		<description><![CDATA[<p>如题，IE(经测试IE8存在)加载flash后，flash好像要等一段时间(不知道多少)才完成stage的宽高，也就是开始是0</p>
<p>其他浏览器(Firefox等)没有这个问题</p>
<p>原理就是用stage的resize事件来判断是否进行下一步：</p>
<p>if (stage.stageWidth &amp;&amp; stage.stageHeight) {<br />
&nbsp;&nbsp;&nbsp; init();<br />
} else {<br />
&nbsp;&nbsp;&nbsp; stage.addEventListener(Event.RESIZE, fixIEWH);<br />
}<br />
<br />
function fixIEWH(e:Event):void {<br />
&nbsp;&nbsp;&nbsp; if (stage.stageWidth &amp;&amp; stage.stageHeight) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; stage.removeEventListener(Event.RESIZE, fixIEWH);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; init();<br />
&nbsp;&nbsp;&nbsp; }<br />
}<br />
//cenfun.com<br />
function init():void {<br />
&nbsp;&nbsp;&nbsp; //下一步初始化<br />
<br />
}</p>
<p>&nbsp;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/131.htm</link>
			<title><![CDATA[地址栏hash存取]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Fri,06 Feb 2009 15:16:13 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=131</guid>
		<description><![CDATA[<p>function getHash() {<br />
&nbsp;var hash = window.location.hash.substring(1);<br />
&nbsp;return hash.split(&quot;,&quot;);<br />
}<br />
function setHash(arr) {<br />
&nbsp;window.location.hash = arr.join(&quot;,&quot;);<br />
}</p>
<p>在ajax中用来保存历史记录</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/130.htm</link>
			<title><![CDATA[解决IE6 sel&#101;ct总是在最上层的bug]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Tue,03 Feb 2009 16:55:31 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=130</guid>
		<description><![CDATA[<p>原理就是用一个透明iframe挡住select，很神奇吧，透明的居然可以挡住，IE7已经无此bug</p>
<p>if ($.browser.msie &amp;&amp; parseInt($.browser.version) &lt; 7) {<br />
&nbsp;&nbsp;overlay = '&lt;iframe style=&quot;width:100%;height:100%;filter:alpha(opacity=0);-moz-opacity:0;&quot;&gt;&lt;/iframe&gt;';<br />
&nbsp;}</p>
<p>&nbsp;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/129.htm</link>
			<title><![CDATA[php过滤数组中的空值(false)]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Sat,17 Jan 2009 15:29:24 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=129</guid>
		<description><![CDATA[<p>array_filter() 如果没有提供 callback 函数，将删除$entry数组中所有等值为 FALSE 的条目</p>
<p>$entry = array_filter($entry);</p>
<p>当转换为 boolean 时，以下值被认为是 FALSE： <br />
布尔值 FALSE<br />
整型值 0（零）<br />
浮点型值 0.0（零）<br />
空白字符串和字符串 &quot;0&quot;<br />
没有成员变量的数组<br />
没有单元的对象（仅适用于 PHP 4）<br />
特殊类型 NULL（包括尚未设定的变量）</p>
<p>但过滤后数组的键名保留不变，如果是索引便会不连续，暂时用array_slice()截取全部</p>
<p>$entry = array_slice(array_filter($entry), 0);</p>
<p>初学php,不知有没有更简单办法</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/articles/128.htm</link>
			<title><![CDATA[FF2/FF3共存]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Articles]]></category>
			<pubDate>Sat,17 Jan 2009 12:25:23 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=128</guid>
		<description><![CDATA[<p>1，下载FF2和FF3<br />
2，安装FF2<br />
3，安装FF3到另一个路径<br />
4，运行firefox - frofilemanager -no-remote打开配置管理，建立firefox2/firefox3两个用户配置<br />
5，FF2快捷方式指定用户配置：&quot;C:\...\Mozilla FireFox 2\firefox.exe&quot; -p firefox2 -no-remote<br />
6，FF3快捷方式指定用户配置：&quot;C:\...|Mozilla FireFox 3\firefox.exe&quot; -p firefox3 -no-remote</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/127.htm</link>
			<title><![CDATA[IE按钮随字数变宽的bug]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Fri,16 Jan 2009 10:53:33 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=127</guid>
		<description><![CDATA[<p>经常有此问题，解决办法：</p>
<p><code><span class="pln">input</span><span class="pun">.</span><span class="pln">button </span><span class="pun">{</span><span class="pln"><br />
&nbsp; &nbsp; padding</span><span class="pun">:</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="pun">.</span><span class="lit">25em</span><span class="pun">;</span><span class="pln"><br />
&nbsp; &nbsp; width</span><span class="pun">:</span><span class="pln"> auto</span><span class="pun">;</span><span class="pln"><br />
&nbsp; &nbsp; _width</span><span class="pun">:</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln"><br />
&nbsp; &nbsp; overflow</span><span class="pun">:</span><span class="pln">visible </span><span class="pun">!</span><span class="pln">ie</span><span class="pun">;</span><span class="pln"><br />
</span><span class="pun">}</span></code><br />
<br />
见demo：<br />
<a target="_blank" href="http://knowhow.davidgrudl.com/css/styling-forms/demo4.html">knowhow.davidgrudl.com/css/styling-forms/demo4.html</a></p>
<p>详情：<br />
<a href="http://www.planabc.net/2008/11/12/the_stretched_buttons_bug/" target="_blank">www.planabc.net/2008/11/12/the_stretched_buttons_bug/</a></p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/126.htm</link>
			<title><![CDATA[JS保存utf-8丢失BOM]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Wed,07 Jan 2009 16:56:04 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=126</guid>
		<description><![CDATA[<p>var doc = new ActiveXObject(&quot;Microsoft.XMLDOM&quot;);<br />
用save方法保存utf-8格式的xml到本地文件时，将丢失BOM <br />
这样导致flash无法读取，显然Microsoft.XMLDOM不能设置charset</p>
<p>今天终于找到另一个保存办法，微软还有一个ADODB.Stream可以设置charset <br />
并且设置utf-8时写入了BOM，问题解决：</p>
<p>var stream = new ActiveXObject(&quot;ADODB.Stream&quot;); <br />
stream.Type = 2; <br />
stream.Charset = &quot;UTF-8&quot;; <br />
stream.Open(); <br />
stream.WriteText(xmlstring); <br />
stream.SaveToFile(xmlurl, 2); <br />
stream.Close();</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/125.htm</link>
			<title><![CDATA[display:inline-block]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Mon,05 Jan 2009 09:54:07 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=125</guid>
		<description><![CDATA[<p>FF2不支持display:inline-block</p>
<p>搞了个moz替代品：</p>
<p>display:-moz-inline-box; -moz-box-align:center;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/124.htm</link>
			<title><![CDATA[纯样式画箭头]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Mon,08 Dec 2008 17:22:15 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=124</guid>
		<description><![CDATA[<p>&lt;style type=&quot;text/css&quot;&gt;<br />
.arrow_up {<br />
&nbsp;border-bottom: 20px solid #333333;<br />
&nbsp;border-left: 10px solid #ffffff;<br />
&nbsp;border-right: 10px solid #ffffff;<br />
&nbsp;width: 0px;<br />
&nbsp;height: 0px;<br />
&nbsp;overflow:hidden;<br />
}<br />
.arrow_down {<br />
&nbsp;border-top: 20px solid #333333;<br />
&nbsp;border-left: 10px solid #ffffff;<br />
&nbsp;border-right: 10px solid #ffffff;<br />
&nbsp;width: 0px;<br />
&nbsp;height: 0px;<br />
&nbsp;overflow:hidden;<br />
}<br />
.arrow_left {<br />
&nbsp;border-right: 20px solid #333333;<br />
&nbsp;border-top: 10px solid #ffffff;<br />
&nbsp;border-bottom: 10px solid #ffffff;<br />
&nbsp;width: 0px;<br />
&nbsp;height: 0px;<br />
&nbsp;overflow:hidden;<br />
}<br />
.arrow_right {<br />
&nbsp;border-left: 20px solid #333333;<br />
&nbsp;border-top: 10px solid #ffffff;<br />
&nbsp;border-bottom: 10px solid #ffffff;<br />
&nbsp;width: 0px;<br />
&nbsp;height: 0px;<br />
&nbsp;overflow:hidden;<br />
}<br />
&lt;/style&gt;<br />
&lt;div class=&quot;arrow_up&quot;&gt;&lt;/div&gt;<br />
&lt;br /&gt;<br />
&lt;div class=&quot;arrow_down&quot;&gt;&lt;/div&gt;<br />
&lt;br /&gt;<br />
&lt;div class=&quot;arrow_left&quot;&gt;&lt;/div&gt;<br />
&lt;br /&gt;<br />
&lt;div class=&quot;arrow_right&quot;&gt;&lt;/div&gt;</p>
<p>大小颜色随便调，主流浏览器测试通过</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/123.htm</link>
			<title><![CDATA[取得对应时区的时间]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Thu,06 Nov 2008 10:26:50 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=123</guid>
		<description><![CDATA[<p>function getTZD(timezone:Number):Date {<br />
&nbsp;var my_date:Date = new Date();<br />
&nbsp;var my_seconds:Number = my_date.getTime();<br />
&nbsp;var timeoffset:Number = my_date.timezoneOffset / 60 + timezone;<br />
&nbsp;my_date.setTime(my_seconds + timeoffset * 60 * 60000);<br />
&nbsp;return my_date;<br />
}</p>
<p>//如美国太平洋是-8<br />
var us_date:Date = getTZD(-8);<br />
trace(us_date);</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/articles/122.htm</link>
			<title><![CDATA[从PS中复制出文字]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Articles]]></category>
			<pubDate>Tue,04 Nov 2008 11:35:22 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=122</guid>
		<description><![CDATA[<p>工作时发现Photoshop CS3无法复制出里面文字图层里的文字(快捷键剪切都不行)，上网搜索一把也有很多人出现这种问题，还有人这样解决：<br />
<a target="_blank" href="http://goday.blogbus.com/logs/24018366.html">http://goday.blogbus.com/logs/24018366.html</a></p>
<p>没办法一大堆文字还是英文，手动敲会死人的，所以也按其办法试了一下，可结果是不行</p>
<p>Adobe就这样考虑的？应该不可能出现这样的问题<br />
PS里也有复制剪切，在内部也能粘贴，就是不能在外面粘贴出来，心想这应该是PS的剪粘板和Windows的剪粘板独立开来导致的，于是在PS的首选项里找，猛然发现默认没有选中&ldquo;导出剪粘版&rdquo;，问题解决。</p>
<p>Adobe之所以这样默认不导出，可能也是因为PS里的复制或剪切包含了更多信息，如滤镜等，不仅是文字本身，故默认不导出剪粘板。这里先记一笔，给还在苦闷的PSer提供点帮助。</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/121.htm</link>
			<title><![CDATA[Flash Player 10的策略变动]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Sat,18 Oct 2008 23:04:39 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=121</guid>
		<description><![CDATA[<p>Flash Player 10(<a target="_blank" href="http://www.adobe.com/go/getflashplayer">http://www.adobe.com/go/getflashplayer</a>)已经正式发布<br />
也可以在这里在线更新: <a target="_blank" href="http://tools.cenfun.com/flashplayer">http://tools.cenfun.com/flashplayer</a><br />
安全策略有一些新的变动，这里有官方的介绍：</p>
<p>Understanding security changes in Flash Player 10<br />
<a href="http://www.adobe.com/devnet/flashplayer/articles/fplayer10_security_changes.html">http://www.adobe.com/devnet/flashplayer/articles/fplayer10_security_changes.html</a><br />
Policy file changes in Flash Player 9 and Flash Player 10<br />
<a href="http://www.adobe.com/devnet/flashplayer/articles/fplayer9_security.html">http://www.adobe.com/devnet/flashplayer/articles/fplayer9_security.html</a><br />
Cross-domain policy file specification<br />
<a href="http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html">http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html</a></p>
<p>重点看了一下跨域策略文件Policy file(crossdomain.xml)的相关变动， 总之FP10在安全方面得到了进一步的增强，当然设置也比以前的更加</p>
<p>复杂。</p>
<p>还没完全看明白，这里先记录一下，以后再修正。</p>
<p>策略文件分成一个master-policy(即位于根的/crossdomain.xml)，以及一些meta-policies(loadPolicyFile)<br />
master-policy可以设置meta-policies的使用权限等，用site-control标记的permitted-cross-domain-policies参数来设置:<br />
1，all 允许所有类型。这也是为了兼容以前的默认值<br />
2，by-content-type 仅允许请求头的Content-Type是text/x-cross-domain-policy的策略文件<br />
3，by-ftp-filename 文件名必须是crossdomain.xml的策略文件(仅对FTP servers)<br />
4，master-only 仅允许位于根的/crossdomain.xml。Flash Player 10.0的默认值<br />
5，none<br />
6，none-this-response</p>
<p>注意master-policy(/crossdomain.xml)的Content-type只能是：<br />
text/* (any text type) <br />
application/xml <br />
application/xhtml+xml <br />
推荐用text/x-cross-domain-policy<br />
这个必须在服务器端设置，如IIS，一般会默认xml为text/xml或text/html</p>
<p>例如允许所有meta-policies的/crossdomain.xml<br />
&lt;cross-domain-policy&gt;<br />
&nbsp;&nbsp; &lt;site-control permitted-cross-domain-policies=&quot;all&quot;/&gt;<br />
&lt;/cross-domain-policy&gt;</p>
<p>这里有它的最新格式定义说明：<br />
<a href="http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">http://www.adobe.com/xml/dtds/cross-domain-policy.dtd</a></p>
<p>一个允许所有的例子：<br />
&lt;?xml version=&quot;1.0&quot;?&gt;<br />
&lt;cross-domain-policy&gt; <br />
&nbsp;&nbsp;&nbsp; &lt;site-control permitted-cross-domain-policies=&quot;all&quot;/&gt; <br />
&nbsp;&nbsp;&nbsp; &lt;allow-access-from domain=&quot;*&quot; /&gt; <br />
&nbsp;&nbsp;&nbsp; &lt;allow-http-request-headers-from domain=&quot;*&quot; headers=&quot;*&quot;/&gt; <br />
&lt;/cross-domain-policy&gt;</p>
<p>在本地测试了一下，如果没有master-policy，只要meta-policy的Content-Type是text/x-cross-domain-policy，也可以允许通过<br />
先记到这里，以后再慢慢测试。</p>
<p>&nbsp;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/120.htm</link>
			<title><![CDATA[AS3的HSB,RGB颜色互转]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Fri,17 Oct 2008 18:38:20 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=120</guid>
		<description><![CDATA[<p>//HSB也有称HSL<br />
//H色相、S饱和度、B明度<br />
//S和B的取值都是百分比，H的取值是色环的度数(0-360)</p>
<p>function hsbtorgb(hue:Number,saturation:Number,brightness:Number):Array {<br />
&nbsp;&nbsp;&nbsp;var red:Number, green:Number, blue:Number;<br />
&nbsp;&nbsp;&nbsp;hue%=360;<br />
&nbsp;&nbsp;&nbsp;if (brightness==0) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;return [0,0,0];<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;saturation/=100;<br />
&nbsp;&nbsp;&nbsp;brightness/=100;<br />
&nbsp;&nbsp;&nbsp;hue/=60;<br />
&nbsp;&nbsp;&nbsp;var i = Math.floor(hue);<br />
&nbsp;&nbsp;&nbsp;var f = hue-i;<br />
&nbsp;&nbsp;&nbsp;var p = brightness*(1-saturation);<br />
&nbsp;&nbsp;&nbsp;var q = brightness*(1-(saturation*f));<br />
&nbsp;&nbsp;&nbsp;var t = brightness*(1-(saturation*(1-f)));<br />
&nbsp;&nbsp;&nbsp;switch (i) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;case 0 :<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;red=brightness;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;green=t;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;blue=p;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;case 1 :<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;red=q;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;green=brightness;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;blue=p;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;case 2 :<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;red=p;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;green=brightness;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;blue=t;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;case 3 :<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;red=p;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;green=q;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;blue=brightness;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;case 4 :<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;red=t;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;green=p;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;blue=brightness;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;case 5 :<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;red=brightness;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;green=p;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;blue=q;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;red=Math.round(red*255);<br />
&nbsp;&nbsp;&nbsp;green=Math.round(green*255);<br />
&nbsp;&nbsp;&nbsp;blue=Math.round(blue*255);<br />
&nbsp;&nbsp;&nbsp;return [red,green,blue];<br />
&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;function rgbtohsb(red:Number,green:Number,blue:Number):Array {<br />
&nbsp;&nbsp;&nbsp;var min=Math.min(Math.min(red,green),blue);<br />
&nbsp;&nbsp;&nbsp;var brightness=Math.max(Math.max(red,green),blue);<br />
&nbsp;&nbsp;&nbsp;var delta=brightness-min;<br />
&nbsp;&nbsp;&nbsp;var saturation=(brightness == 0) ? 0 : delta/brightness;<br />
&nbsp;&nbsp;&nbsp;var hue;<br />
&nbsp;&nbsp;&nbsp;if (saturation == 0) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;hue=0;<br />
&nbsp;&nbsp;&nbsp;} else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (red == brightness) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hue=(60*(green-blue))/delta;<br />
&nbsp;&nbsp;&nbsp;&nbsp;} else if (green == brightness) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hue=120+(60*(blue-red))/delta;<br />
&nbsp;&nbsp;&nbsp;&nbsp;} else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hue=240+(60*(red-green))/delta;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (hue&lt;0) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hue+=360;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;saturation*=100;<br />
&nbsp;&nbsp;&nbsp;brightness=(brightness/255)*100;<br />
&nbsp;&nbsp;&nbsp;return [hue,saturation,brightness];<br />
&nbsp;&nbsp;}</p>
<p>//附色深<br />
function depthColor(c:Number, depth:Number):Number {<br />
&nbsp;&nbsp;&nbsp;var red:Number = (c &gt;&gt; 16 &amp; 0xFF)*depth;<br />
&nbsp;&nbsp;&nbsp;var green:Number = (c &gt;&gt; 8 &amp; 0xFF)*depth;<br />
&nbsp;&nbsp;&nbsp;var blue:Number = (c &amp; 0xFF)*depth;<br />
&nbsp;&nbsp;&nbsp;return red&lt;&lt;16 | green&lt;&lt;8 | blue;<br />
&nbsp;&nbsp;}</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/119.htm</link>
			<title><![CDATA[RGB的r,g,b拆分与合并]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Fri,17 Oct 2008 16:54:40 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=119</guid>
		<description><![CDATA[<p>var c1:Number = 0xff9966;<br />
//拆分<br />
var red:Number = (c1 &gt;&gt; 16 &amp; 0xFF);<br />
var green:Number = (c1 &gt;&gt; 8 &amp; 0xFF);<br />
var blue:Number = (c1 &amp; 0xFF);<br />
trace(red.toString(16));<br />
trace(green.toString(16));<br />
trace(blue.toString(16));<br />
//合并<br />
//var c2:Number = red * 0x10000 + green * 0x100 + blue;<br />
var c2:Number = red&lt;&lt;16 | green&lt;&lt;8 | blue;<br />
trace(c2.toString(16));</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/118.htm</link>
			<title><![CDATA[外载loader的自适应大小和位置]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Thu,25 Sep 2008 12:34:49 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=118</guid>
		<description><![CDATA[<p>this.addEventListener(Event.ADDED_TO_STAGE, addHd);<br />
function addHd(e:Event):void {<br />
&nbsp;updateBgSize();<br />
&nbsp;stage.addEventListener(Event.RESIZE, resizeHd);<br />
}</p>
<p>function resizeHd(e:Event):void {<br />
&nbsp;updateBgSize();<br />
}</p>
<p>function updateBgSize():void {<br />
&nbsp;var tw:Number = this.width;<br />
&nbsp;var th:Number = this.height;<br />
&nbsp;this.scaleX = this.scaleY = 1;<br />
&nbsp;bg.width = tw;<br />
&nbsp;bg.height = th;<br />
&nbsp;console.x = (tw - console.width) * 0.5;<br />
&nbsp;console.y = (th - console.height) * 0.5;<br />
}</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/117.htm</link>
			<title><![CDATA[Flash Player播放Mp3寻址不准确的问题]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Sun,07 Sep 2008 15:46:21 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=117</guid>
		<description><![CDATA[<p>之前写过一篇&ldquo;<a class="titleA" href="http://www.cenfun.com/blog/article.asp?id=55"><font color="#008000">Flash对MP3音频格式的限制</font></a>&rdquo;见(<a href="http://www.cenfun.com/blog/article.asp?id=55">http://www.cenfun.com/blog/article.asp?id=55</a>)<br />
Flash Player(目前最新版)对Mp3的支持并不完善。</p>
<p>现在网上有各种编码格式的mp3，当你用Flash Player来调用播放时，除了以上不能播放或播放异常外，见得多的问题就是快进跳过，歌词不能同步的问题了，为什么会出现这样的情况，原来目前的Flash Player播放一些非标准压缩或编码的Mp3时，在寻址上并不准确。</p>
<p>Sound. play(position);</p>
<p>要很好的对position进行定位，需要对mp3的格式有些限制，这里做了些实验，分别对以下编码格式的mp3进行快进寻址操作，看是否准确：</p>
<p>64kbps_11kHz.mp3 有问题<br />
128kbps_11kHz.mp3 有问题<br />
32kbps_22kHz.mp3 有问题<br />
32kbps_24kHz.mp3 有问题<br />
32kbps_32kHz.mp3 有问题<br />
96kbps_32kHz.mp3 有问题</p>
<p>32kbps_44kHz.mp3 正常<br />
64kbps_44kHz.mp3 正常<br />
96kbps_44kHz.mp3 正常<br />
112kbps_44kHz.mp3 正常<br />
128kbps_44kHz.mp3 正常<br />
192kbps_44kHz.mp3 正常<br />
128kbps_48kHz.mp3 正常<br />
192kbps_48kHz.mp3 正常</p>
<p>以上均采用CBR(常数比特率/恒定码率)压缩，由此可见寻址的精确与否和采样频率有关系。</p>
<p>当采样频率大于等于44kHz都正常，而与编码质量关系不大，不管是32kbps到192kbps都寻址正常。</p>
<p>所以推荐大家压缩用于flash player播放的mp3时，一定使用44kHz的采样频率。而文件大小和音效质量由编码率去确定。当然大家还可测试一下采用VBR(变码率)压缩的情况。</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/116.htm</link>
			<title><![CDATA[Flex中创建XML的CDATA节点]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Fri,05 Sep 2008 18:16:25 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=116</guid>
		<description><![CDATA[<p>MXML中好像不能直接写CDATA，于是写一个as类：</p>
<p>package {<br />
&nbsp;public class CDATA {<br />
&nbsp;&nbsp;public static function create(info:String):XML{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;return new XML(&quot;&lt;![CDATA[&quot; + info + &quot;]]&gt;&quot;);<br />
&nbsp;&nbsp;&nbsp; &nbsp;}<br />
&nbsp;}<br />
}</p>
<p>调用：</p>
<p>var cdata:XML = CDATA.create(&quot;xxx&quot;);</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/115.htm</link>
			<title><![CDATA[#2030遇到文件尾ByteArray.readFloat]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Fri,29 Aug 2008 19:04:50 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=115</guid>
		<description><![CDATA[<p>获取声音波形快照时(SoundMixer.computeSpectrum)，如果跨域则无法将数据放入定义的ByteArray</p>
<p>此时虽然：var b:ByteArray = new ByteArray(); 定义了b，但使用b.readFloat()方法时会报错：</p>
<p>EOFError: Error #2030: End of file was encountered.遇到文件尾</p>
<p>于是在computeSpectrum时catch一下，捕获错误时将0写入b：</p>
<p>b.writeFloat(0);</p>
<p>但仍然报错，后来到网上查原来没有将文件指针至0：</p>
<p>b.position = 0;</p>
<p>这样就OK了，注意SoundMixer.computeSpectrum应保存存512长度的ByteArray，而不是一个0：</p>
<p>private function get512b():ByteArray {<br />
&nbsp;&nbsp;&nbsp;var b:ByteArray = new ByteArray();<br />
&nbsp;&nbsp;&nbsp;for (var i:int = 0; i &lt; 512; i++) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;b.writeFloat(0);<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;b.position = 0;<br />
&nbsp;&nbsp;&nbsp;return b;<br />
&nbsp;&nbsp;}</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/114.htm</link>
			<title><![CDATA[滚动条setStyle设置皮肤样式的问题]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Sun,13 Jul 2008 02:29:13 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=114</guid>
		<description><![CDATA[<p>BaseScrollPane 类处理基本的滚动窗格功能，包括事件、样式、绘制遮罩和背景、滚动条的布局，以及滚动位置的处理。ScrollPane 和 SelectableList(List) 类对 BaseScrollPane 类进行扩展。</p>
<p>开发中，用setStyle给滚动条(ScrollBar)设定样式(皮肤)时，出现了一些小问题：</p>
<p>如果ScrollPane或List横滚动条和竖滚动条同在，给滚动条使用setStyle时，则两个滚动条的样式会发生冲突，如：</p>
<p>pane.setStyle(&quot;thumbUpSkin&quot;, upLoader);&nbsp;&nbsp; //upLoader为加载进来的图片或动画</p>
<p>仔细看看，如果用默认样式<font face="Courier New">ScrollThumb_upSkin则并不会出现问题，且如果将所需图片导入flash，并将其为 ActionScript 导出创建类，使用其也不会出现问题</font></p>
<p><font face="Courier New">想想，他们的区别就在于一个是实例化的，一个是未实例化的，为什么实例化的会出现问题呢</font></p>
<p><font face="Courier New">且如果只有一个滚动条存在，则都不会出现问题，后来在BaseScrollPane看到:</font></p>
<p><font face="Courier New">protected function setStyles():void {<br />
&nbsp;&nbsp;&nbsp;copyStylesToChild(_verticalScrollBar,SCROLL_BAR_STYLES);<br />
&nbsp;&nbsp;&nbsp;copyStylesToChild(_horizontalScrollBar,SCROLL_BAR_STYLES);<br />
}</font></p>
<p><font face="Courier New">AS3中addChild时，如果添加一个已将其它显示对象容器作为父项的子对象，则会从其它显示对象容器的子列表中删除该对象。故同一图片实例不能同时出现在横竖两个滚动条中。</font></p>
<p><font face="Courier New">目前如果使用List，只能把横滚动条禁用，只留竖滚动条，或将图片导入创建类<br />
顺便提出，使用ScrollPane时，禁用一个滚动条也会出现此问题，比较ScrollPane与List的区别，发现configUI时，List先做了useFixedHorizontalScrolling = true;处理，这样</font><font face="Courier New">自写类继承ScrollPane修正即可：</font></p>
<p><font face="Courier New">package fl.controls {<br />
&nbsp;import fl.containers.*;<br />
&nbsp;public class SP extends ScrollPane {<br />
&nbsp;&nbsp;public function SP() {<br />
&nbsp;&nbsp;&nbsp;super();<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;override protected function configUI():void {<br />
&nbsp;&nbsp;&nbsp;//修正双滚动条皮肤设置的bug<br />
&nbsp;&nbsp;&nbsp;useFixedHorizontalScrolling = true;<br />
&nbsp;&nbsp;&nbsp;super.configUI();<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
}</font></p>
<p><font face="Courier New">useFixedHorizontalScrolling是干什么用的，还望知之者补充。</font></p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/113.htm</link>
			<title><![CDATA[Tween存在问题]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Sun,13 Jul 2008 01:34:25 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=113</guid>
		<description><![CDATA[<p>几次用Tween都发现有中途停止等现象，没有看过其具体实现方法，但肯定其存在问题。</p>
<p>同见：<a href="http://www.psyked.co.uk/adobe/flash/stop-using-mxtransitionstween.htm">http://www.psyked.co.uk/adobe/flash/stop-using-mxtransitionstween.htm</a></p>
<p>推荐用tweener代之：<a href="http://code.google.com/p/tweener/">http://code.google.com/p/tweener/</a></p>
<p>CS3自带部分组件或类存在些小问题：</p>
<p><a href="http://www.cenfun.com/blog/article.asp?id=114">http://www.cenfun.com/blog/article.asp?id=114</a><a href="http://www.cenfun.com/blog/article.asp?id=110"><br />
http://www.cenfun.com/blog/article.asp?id=110</a><br />
<a href="http://www.cenfun.com/blog/article.asp?id=107">http://www.cenfun.com/blog/article.asp?id=107</a><br />
<a href="http://www.cenfun.com/blog/article.asp?id=106">http://www.cenfun.com/blog/article.asp?id=106</a></p>
<p>相信CS4，Flash 10将其完善</p>
<p>&nbsp;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/112.htm</link>
			<title><![CDATA[Flash加载无BOM的Unicode文件报错]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Tue,01 Jul 2008 15:56:39 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=112</guid>
		<description><![CDATA[<p>Flash要兼容非Unicode外部文件的正确读取，一般设置System.useCodePage = &quot;true&quot;<br />
但此时如果你的文件是Unicode，如utf-8，而没有BOM(<a target="_blank" href="http://www.unicode.org/faq/utf_bom.html#BOM">http://www.unicode.org/faq/utf_bom.html#BOM</a>)<br />
则flash载入解析为XML时将报错：TypeError: Error #1090</p>
<p>因为其中的中文等字符成了乱码，不能正确读取XML结构，故解析错误<br />
一般情况用记事本等编辑工具保存为utf-8编码时会自动在头加上BOM：</p>
<p>utf-8的BOM为：EF BB BF&nbsp;</p>
<p>用服务端语言生成utf-8编码的xml时，如asp，并没有自动添加BOM，导致flash不能加载动态xml数据<br />
这里可在asp文档开头强制写入一个BOM：<br />
&lt;%<br />
Response.BinaryWrite(ChrB(239))<br />
Response.BinaryWrite(ChrB(187))<br />
Response.BinaryWrite(ChrB(191))<br />
%&gt;<br />
如果php或其他也出现类似情况，请做相应处理，或采用非Unicode，如gb2312</p>
<p>&nbsp;PHP:</p>
<p>$text=&quot;\xEF\xBB\xBF&quot;.$text;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/111.htm</link>
			<title><![CDATA[Webdings字体的妙用]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Sun,22 Jun 2008 19:16:54 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=111</guid>
		<description><![CDATA[<p>Webdings中有很多常用的图标符号，可以很方便的在Flash中快速应用。</p>
<p>如播放器控制按钮，窗口按钮等：</p>
<h1><font face="Webdings">974;&lt;8:X</font></h1>
<h1><font face="Webdings">021r</font></h1>
<h1><font face="Webdings">356</font></h1>
<h1><font face="Webdings">`qa</font></h1>
<p>这样还可以节省很多空间</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/cmp/109.htm</link>
			<title><![CDATA[CMP v3.0正式版发布]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[CMP]]></category>
			<pubDate>Fri,20 Jun 2008 02:05:29 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=109</guid>
		<description><![CDATA[<p>从5月20日开始发布CMP v3.0测试版至今，已经过去大半个月，CMP3已经基本趋于稳定和完善，感谢网友们的支持和一起参与测试，还不知道的朋友欢迎进入CMP交流论坛下载最新版本：</p>
<p>&nbsp;<a href="http://bbs.cenfun.com/forumdisplay.php?fid=10">http://bbs.cenfun.com/forumdisplay.php?fid=10</a></p>
<p>介绍：<br />
&nbsp; &nbsp; CMP是一款免费的在线音乐播放器，采用Flash开发。支持的音频视频格式主要有MP3,FLV,MP4,并可以通过网页JS接口实现WMP(Windows Media Player)所支持的格式播放，如wma,wmv,wav,mid等。主要功能特色有列表式播放(自定义音乐专辑和列表)，MP3可视化效果(SoundMixer混音器)，同步歌词，高清视频(h264)，自定义皮肤，加载各种插件等等。</p>
<p>下载：</p>
<p><a href="http://cmp.cenfun.com/download/">http://cmp.cenfun.com/download/</a></p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/110.htm</link>
			<title><![CDATA[AS3 UI 组件 List 键盘控制的问题]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Wed,18 Jun 2008 10:10:05 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=110</guid>
		<description><![CDATA[<p>默认List创建时，自注册了键盘方向键等快捷键的控制：</p>
<p>override protected function keyDownHandler(event:KeyboardEvent):void {<br />
&nbsp;&nbsp;&nbsp;if (!selectable) { return; }<br />
&nbsp;&nbsp;&nbsp;switch (event.keyCode) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;case Keyboard.UP:<br />
&nbsp;&nbsp;&nbsp;&nbsp;case Keyboard.DOWN:<br />
&nbsp;&nbsp;&nbsp;&nbsp;case Keyboard.END:<br />
&nbsp;&nbsp;&nbsp;&nbsp;case Keyboard.HOME:<br />
&nbsp;&nbsp;&nbsp;&nbsp;case Keyboard.PAGE_UP:<br />
&nbsp;&nbsp;&nbsp;&nbsp;case Keyboard.PAGE_DOWN:<br />
&nbsp;&nbsp;&nbsp;&nbsp;case Keyboard.LEFT:<br />
&nbsp;&nbsp;&nbsp;&nbsp;case Keyboard.RIGHT:<br />
&nbsp;&nbsp;&nbsp;&nbsp;case Keyboard.SPACE:<br />
&nbsp;&nbsp;&nbsp;&nbsp;default:<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}</p>
<p>但是，当你上下移动到列表某个选项，如第10个，然后再修改列表项(不是new List，如用dataProvider修改)到少于10个，则再用键盘移动选项时，依旧停留在10的位置并从其开始，即使用selectedIndex,selectedItem指定到0也没用。</p>
<p>后来发现是没有把caretIndex复原，那么适时按需修改你的caretIndex即可，如在selectedIndex时修改：</p>
<p>package fl.controls{<br />
&nbsp;public class MyList extends List {<br />
&nbsp;&nbsp;//修正键盘移动bug<br />
&nbsp;&nbsp;override public function set selectedIndex(index:int):void {<br />
&nbsp;&nbsp;&nbsp;super.selectedIndex = index;<br />
&nbsp;&nbsp;&nbsp;super.caretIndex = index;<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
}</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/108.htm</link>
			<title><![CDATA[Flash AS3 乘除运算速度]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Tue,10 Jun 2008 14:36:02 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=108</guid>
		<description><![CDATA[<p>下面是除2和乘0.5的速度比较：</p>
<p>var total:Number = 10000000;<br />
var num:Number = 1000;<br />
var time:Number = getTimer();<br />
for (var i:int = 0; i&lt;total; i++) {<br />
&nbsp;num = num/2;<br />
}<br />
trace(getTimer() - time);</p>
<p>////////////////////////////////////<br />
num = 1000000;<br />
time = getTimer();<br />
for (var j:int = 0; j&lt;total; j++) {<br />
&nbsp;num = num*0.5;<br />
}<br />
trace(getTimer() - time);</p>
<p>运算10000000次后，除2用时221ms，而乘0.5用时109ms，不管多少次基本都差不多是2倍的关系，看来程序要优化下了，用/用习惯了</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/107.htm</link>
			<title><![CDATA[Flash NetStream的FileStructureInvalid问题]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Wed,04 Jun 2008 15:28:17 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=107</guid>
		<description><![CDATA[<p>如果将一个错误格式或不支持格式的视频文件(如文本文件)加入NetStream播放</p>
<p>NetStatusEvent抛出的info.code是：</p>
<p>&nbsp;&quot;NetStream.Play.FileStructureInvalid&quot;</p>
<p>这些都正常，然后接下来再播放其他正常视频时，Flash会假死（默认15秒）</p>
<p>如果错误后调用NetStream.close会立马假死</p>
<p>尝试NetConnection.close或remove再new和add也是如此</p>
<p>用FLVPlayback和VideoPlayer组件试过了，也是如此</p>
<p>在Flash Player版本为9.0.115 、124甚至Flash Player 10都测试过</p>
<p>而假死后一切恢复正常。</p>
<p>不知问题出在何处，还是bug。</p>
<p>&nbsp;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/106.htm</link>
			<title><![CDATA[AS3 Video Smoothing小问题]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Mon,02 Jun 2008 10:16:31 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=106</guid>
		<description><![CDATA[<p>发现as3中，如果Video开启了平滑处理：<font face="Courier New">smoothing=true;</font></p>
<p><font face="Courier New">则clear()方法不能清除平滑层</font></p>
<p><font face="Courier New">尝试clear()之前先smoothing=false;也不行</font></p>
<p><font face="Courier New">只能visible=false了，但当</font><font face="Courier New">visible=true时，依旧要看到保留下来的画面</font></p>
<p><font face="Courier New">没办法，只能removeChild(video)，加载时再new Video()，addChild(video)</font></p>
<p>&nbsp;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/105.htm</link>
			<title><![CDATA[IE document.body.appendChild终止操作]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Wed,21 May 2008 11:25:28 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=105</guid>
		<description><![CDATA[<p>//IE Operation Aborted 操作终止的bug<br />
var divObj=document.createElement(&quot;div&quot;);<br />
var msie=/msie/.test(navigator.userAgent.toLowerCase());<br />
if(msie){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.body.insertBefore(divObj, document.body.firstChild);<br />
}else{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.body.appendChild(divObj);<br />
}</p>
<p>//之前用document.write(&quot;&lt;body&gt;&lt;/body&gt;&quot;);以及window.onload都不能解决从flash异步创建<br />
//既然body没搞完不能appendChild，那就insertBefore在第一个节点前</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/104.htm</link>
			<title><![CDATA[Flash中过滤html]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Tue,08 Apr 2008 17:03:30 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=104</guid>
		<description><![CDATA[<p>发现一个简单的办法过滤传入串中的html：</p>
<p>var html:String = '&lt;a href=&quot;http://www.cenfun.com/&quot;&gt;&lt;b&gt;html过滤测试&lt;/b&gt;&lt;/a&gt;';<br />
var _textField:TextField = new TextField();<br />
_textField.htmlText = html;<br />
var str:String = _textField.text;<br />
trace(str);//html过滤测试</p>
<p>对Flash不支持的标签也有效。</p>
<p>function html2text(htm:String):String {<br />
&nbsp;var _textField:TextField = new TextField();<br />
&nbsp;_textField.htmlText = htm;<br />
&nbsp;return _textField.text;<br />
}</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/103.htm</link>
			<title><![CDATA[Flash中的thisMovie]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Mon,07 Apr 2008 10:17:07 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=103</guid>
		<description><![CDATA[<p>Flash与JS通讯时，开发文档中总有这么一个JS函数，记录一下：</p>
<p>function thisMovie(movieName) {<br />
&nbsp;if (navigator.appName.indexOf(&quot;Microsoft&quot;) != -1) {<br />
&nbsp; &nbsp;return window[movieName];<br />
&nbsp;} else {<br />
&nbsp; &nbsp;return document[movieName];<br />
&nbsp;}<br />
}</p>
<p>以后ExternalInterface将是主流，这个thisMovie便是通道的一把钥匙。</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/102.htm</link>
			<title><![CDATA[Flash之间跨域通讯]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Thu,03 Apr 2008 15:34:20 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=102</guid>
		<description><![CDATA[<p>项目中需要2个flash通讯，这个2个flash是在不同的域，但即使设置了：</p>
<p>LocalConnection.allowDomain(&quot;*&quot;);</p>
<p>依旧不能跨域。查了下帮助文档，原来这里有个小小的技巧，记录下。</p>
<ul>
    <li>如果 <code>connectionName</code> 字符串不以下划线开头，则 Flash Player 会添加一个包含超级域名称和一个冒号的前缀（例如 <code>myDomain:connectionName</code>）。虽然这可以确保您的连接不会与其它域中具有同一名称的连接冲突，但任何发送方 LocalConnection 对象都必须指定此超级域（例如 <code>myDomain:connectionName</code>）。如果将具有接收方 LocalConnection 对象的 SWF 文件移动到另一个域中，Flash Player 会更改前缀，以反映新的超级域（例如 <code>anotherDomain:connectionName</code>）。必须手动编辑所有发送方 LocalConnection 对象，以指向新超级域。</li>
    <li>如果 <code>connectionName</code> 字符串以下划线开头（例如 <code>_connectionName</code>），Flash Player 不会向该字符串添加前缀。这意味着接收方和发送方 LocalConnection 对象都将使用相同的 <code>connectionName</code> 字符串。如果接收方对象使用 <code>LocalConnection.allowDomain()</code> 来指定可以接受来自任何域的连接，则可以将具有接收方 LocalConnection 对象的 SWF 文件移动到另一个域，而无需更改任何发送方 LocalConnection 对象。</li>
</ul>
<p>在连接名加个下划线就搞定了。</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/101.htm</link>
			<title><![CDATA[AS3正则表达式]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Fri,28 Mar 2008 00:32:53 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=101</guid>
		<description><![CDATA[<p>AS3支持正则表达式，对于文本字符串的解析实在是太好用了！</p>
<p>难怪说as3的速度差不多是as2的十倍，至少在这一点上就可以体现出来。</p>
<p>我们经常用Flash解析歌词，AS2的时候那个叫复杂啊，现在AS3有了正则，一切是那么的快。</p>
<p>这里有歌词的标准格式介绍：<a target="_blank" href="http://www.cenfun.com/blog/article.asp?id=22">http://www.cenfun.com/blog/article.asp?id=22</a></p>
<p>解析时只需用3个正则表达式就能轻松搞定(有更好的欢迎大家留言)：</p>
<p>/\[(ti|ar|al|by|offset):(.+)\]\s+/ig<br />
/((\[(\d+):(\d+(\.\d+)?)\])+)(.*)\s+/ig;<br />
/\[(\d+):(\d+(\.\d+)?)\]/ig</p>
<p>第一个是匹配出所有标识标签（ID-tags）行；<br />
第二个是匹配出所有时间标签（Time-tag）行；<br />
因为一个时间标签行可以有多个时刻对应到同一句歌词，故第三个匹配到同一行的各个时间标签。</p>
<p>剩下的事情就是数组的For循环替换及排序了，就这么简单！</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/articles/100.htm</link>
			<title><![CDATA[好玩比较一下几个搜索引擎]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Articles]]></category>
			<pubDate>Thu,27 Mar 2008 22:59:58 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=100</guid>
		<description><![CDATA[<p>本站在06年一月有篇原创贴图文章：从太空看世界上最高楼(<a target="_blank" href="http://www.cenfun.com/blog/article.asp?id=24">http://www.cenfun.com/blog/article.asp?id=24</a>)</p>
<p>两年后的今天，来看看一些搜索引擎收录情况。</p>
<p>1，首先是Google，输入标题一查，排在第一的就本站的文章标题及地址。google.com和google.cn都一样，其他一些引用文章的网站都排到了后面。</p>
<p>2，来看看我们的Baidu，查出了2页，结果很&ldquo;奇怪&rdquo;，本站原创网址排在了所有搜索结果的最后，也就是最后一页最后一个。</p>
<p>3，在中文Yahoo搜索(同3721)的位置排在了第一，而yahoo.com没有收录。</p>
<p>4，腾讯soso中和Google一样，因为第一句话写着：以下结果由&nbsp;&nbsp;<img alt="" align="absMiddle" src="http://cache.soso.com/img/web/google_logo.gif" />&nbsp;&nbsp;提供</p>
<p>5，在网易yodao中搜，排在了第1页第8的位置，前面都是一些引用本文的论坛之类的。</p>
<p>6，在MSN中排在第2，排第1的不是引用本文的网址。</p>
<p>7，搜狗sogou中没有收录，但有引用结果。</p>
<p>8，中搜zhongsou排在第四。</p>
<p>看来仅百度Baidu的搜索结果值得思考。</p>
<p>最近推出的百度HI，今天在朋友邀请下试用了一翻，没什么感觉，再怎么玩，都没个特别花样。</p>
<p>QQ，MSN，Skype，Gtalk，UC，飞信，雅虎通，淘宝旺旺，浩方，等等，太多了眼花缭乱啊。</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/99.htm</link>
			<title><![CDATA[玩转Flash 3D]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Wed,26 Mar 2008 18:00:35 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=99</guid>
		<description><![CDATA[<p>虽然用Flash做的3D性能有待考验，但毕竟能放在普通网页中运行，实现的效果还是很Cool的。</p>
<p>目前比较流行的Flash3D引擎有Papervision3d、Away3D，开源地址为：</p>
<p>Papervision3d：<a target="_blank" href="http://code.google.com/p/papervision3d/">http://code.google.com/p/papervision3d/</a></p>
<p>Away3D：<a target="_blank" href="http://code.google.com/p/away3d/">http://code.google.com/p/away3d/</a></p>
<p>其中Papervision3d应用的例子比较多，大家可以安装一个SVN客户端(推荐TortoiseSVN)，CheckOut下来玩玩，其中包括源码，文档和实例。</p>
<p>这里有个旋转正方体的例子：<a target="_blank" href="http://www.gotoandlearn.com/player.php?id=68">http://www.gotoandlearn.com/player.php?id=68</a></p>
<p>还提供源码和视频教程下载。</p>
<p>enjoy</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/98.htm</link>
			<title><![CDATA[颜色百分渐变]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Fri,25 Jan 2008 10:10:02 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=98</guid>
		<description><![CDATA[<p>function getColor(p,v1,v2,c1,c2){<br />
&nbsp;if(p&lt;=v1){<br />
&nbsp;&nbsp;return c1;<br />
&nbsp;}<br />
&nbsp;if(p&gt;=v2){<br />
&nbsp;&nbsp;return c2;<br />
&nbsp;}<br />
&nbsp;var r1,g1,b1;<br />
&nbsp;r1 = parseInt(&quot;0x&quot;+c1.substring(1, 3));<br />
&nbsp;g1 = parseInt(&quot;0x&quot;+c1.substring(3, 5));<br />
&nbsp;b1 = parseInt(&quot;0x&quot;+c1.substring(5, 7));<br />
&nbsp;var r2,g2,b2;<br />
&nbsp;r2 = parseInt(&quot;0x&quot;+c2.substring(1, 3));<br />
&nbsp;g2 = parseInt(&quot;0x&quot;+c2.substring(3, 5));<br />
&nbsp;b2 = parseInt(&quot;0x&quot;+c2.substring(5, 7));<br />
&nbsp;var r,g,b;<br />
&nbsp;var vp=Math.abs((v1-p)/(v2-v1));<br />
&nbsp;r = Math.round((r2-r1)*vp+r1).toString(16);<br />
&nbsp;g = Math.round((g2-g1)*vp+g1).toString(16);<br />
&nbsp;b = Math.round((b2-b1)*vp+b1).toString(16);<br />
&nbsp;r.length == 1 ? r=&quot;0&quot;+r : r;<br />
&nbsp;g.length == 1 ? g=&quot;0&quot;+g : g;<br />
&nbsp;b.length == 1 ? b=&quot;0&quot;+b : b;<br />
&nbsp;var c=&quot;#&quot;+r+g+b;<br />
&nbsp;//alert(b);<br />
&nbsp;return c;<br />
}</p>
<p>//getColor(50,20,80,&quot;#00cc00&quot;,&quot;#ff0000&quot;);</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/97.htm</link>
			<title><![CDATA[AllowScriptAccess,allowNetworking,allowFullScreen]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Fri,21 Dec 2007 10:11:53 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=97</guid>
		<description><![CDATA[<p>1,AllowScriptAccess</p>
<p>参数：</p>
<p>sameDomain：仅当 SWF 文件和网页位于同一域中时才允许执行外出脚本访问。这是 AVM2 内容的默认值。 <br />
never：外出脚本访问将始终失败。 <br />
always：外出脚本访问将始终成功。</p>
<p>AllowScriptAccess 参数可以防止从一个域中承载的 SWF 文件访问来自另一个域的 HTML 页面中的脚本。<br />
对从另一个域承载的所有 SWF 文件使用 AllowScriptAccess=&quot;never&quot; 可以确保位于 HTML 页面中的脚本的安全性。</p>
<p><br />
2,allowNetworking</p>
<p>参数：</p>
<p>&quot;all&quot;（默认值）― SWF 文件中允许使用所有网络 API。 <br />
&quot;internal&quot;― SWF 文件可能不调用浏览器导航或浏览器交互 API，但是它会调用任何其它网络 API。 <br />
&quot;none&quot;― SWF 文件可能不调用浏览器导航或浏览器交互 API，并且它无法使用任何 SWF 到 SWF 通信 API。</p>
<p>可以控制 SWF 文件对网络功能的访问。调用被禁止的 API 会引发 SecurityError 异常。</p>
<p>当 allowNetworking 设置为 &quot;internal&quot; 时，以下 API 被禁止：</p>
<p>navigateToURL() <br />
fscommand() <br />
ExternalInterface.call()</p>
<p>当 allowNetworking 设置为 &quot;none&quot; 时，除了上面列出的那些 API 外，还会禁止以下 API：</p>
<p>sendToURL() <br />
FileReference.download() <br />
FileReference.upload() <br />
Loader.load() <br />
LocalConnection.connect() <br />
LocalConnection.send() <br />
NetConnection.connect() <br />
NetStream.play() <br />
Security.loadPolicyFile() <br />
SharedObject.getLocal() <br />
SharedObject.getRemote() <br />
Socket.connect()</p>
<p>3,allowFullScreen</p>
<p>参数：</p>
<p>启用全屏模式设置为&quot;true&quot;，否则设置为&quot;false&quot;（默认值）</p>
<p>仅当在响应鼠标事件或键盘事件时才会调用启动全屏模式的 ActionScript。如果在其它情况中调用，Flash Player 会引发异常。</p>
<p>在全屏模式下，用户无法在文本输入字段中输入文本。所有键盘输入和键盘相关的 ActionScript 在全屏模式下均会被禁用，但将应用程序返回标准模式的键盘快捷键（例如按 Esc）除外。</p>
<p>当内容进入全屏模式时，程序会显示一条消息，指导用户如何退出和返回标准模式。该消息将显示几秒钟，然后淡出。</p>
<p>如果某个调用方与 Stage 所有者（主 SWF 文件）没有位于同一安全沙箱，则调用 Stage 对象的 displayState 属性会引发异常。</p>
<p>管理员可以通过在 mms.cfg 文件中设置 FullScreenDisable = 1 对浏览器中运行的 SWF 文件禁用全屏模式。</p>
<p>在浏览器中，必须在 HTML 页面中包含 SWF 文件，才能进入全屏模式。</p>
<p>在独立的播放器或放映文件中始终允许全屏模式。</p>
<p>&nbsp;实例代码：</p>
<p>&lt;object classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; codebase=&quot;http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;<br />
&nbsp; &lt;param name=&quot;movie&quot; value=&quot;falsh.swf&quot; /&gt;<br />
&nbsp; &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;<br />
&nbsp; &lt;param name=&quot;AllowScriptAccess&quot; value=&quot;sameDomain&quot; /&gt;<br />
&nbsp; &lt;param name=&quot;allowNetworking&quot; value=&quot;all&quot; /&gt;<br />
&nbsp; &lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;<br />
&nbsp; &lt;embed src=&quot;falsh.swf&quot; width=&quot;100%&quot; height=&quot;100%&quot; quality=&quot;high&quot; pluginspage=&quot;http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;sameDomain&quot; allownetworking=&quot;all&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/embed&gt;<br />
&lt;/object&gt;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/articles/96.htm</link>
			<title><![CDATA[IE&#34;单击以激活并使用此控件&#34;官方补丁发布]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Articles]]></category>
			<pubDate>Wed,12 Dec 2007 16:53:24 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=96</guid>
		<description><![CDATA[<p>IE浏览器终于去掉&quot;单击以激活并使用此控件&quot;这个多余的东西了！</p>
<p>微软官方说明和下载页：<br />
<a href="http://support.microsoft.com/kb/945007">http://support.microsoft.com/kb/945007</a></p>
<p>选择你的浏览器对应版本和系统，进入下载页面时，记得选择你的语言（Change Language），然后下载补丁，安装完重启即可！</p>
<p>不知道AC_RunActiveContent.js、SwfObject.js等之类的东东还有没有存在的意义！</p>
<p>当然解决了这个，还有另外2个头疼的东西：<a target="_blank" href="http://www.cenfun.com/blog/article.asp?id=93"><strong><font face="Courier New">object</font>&nbsp;</strong>&amp; &nbsp;<code><strong>embed</strong></code></a>&nbsp;&nbsp;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/95.htm</link>
			<title><![CDATA[Flash(AS3)读取Excel文件]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Wed,12 Dec 2007 15:49:52 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=95</guid>
		<description><![CDATA[<p>var excelXml:XML;<br />
var loader=new URLLoader();<br />
loader.addEventListener(Event.COMPLETE,loadComplete);<br />
loader.load(new URLRequest(&quot;data.xls&quot;));<br />
function loadComplete(e:Event):void {<br />
&nbsp;excelXml=new XML(e.target.data);<br />
&nbsp;readData(excelXml);<br />
}<br />
function readData(xml:XML) {<br />
&nbsp;var ns=xml.namespace();<br />
&nbsp;var rows=xml..ns::Row;<br />
&nbsp;for each (var r in rows) {<br />
&nbsp;&nbsp;var cellData=r.ns::Cell.ns::Data.text();<br />
&nbsp;&nbsp;var str:String = &quot;&quot;;<br />
&nbsp;&nbsp;for each (var d in cellData) {<br />
&nbsp;&nbsp;&nbsp;str+=d+&quot;,&quot;;<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;trace(str);<br />
&nbsp;}<br />
}</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/94.htm</link>
			<title><![CDATA[AS3计时器]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Mon,03 Dec 2007 11:59:53 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=94</guid>
		<description><![CDATA[<p>//Timer(delay:Number, repeatCount:int = 0)<br />
//delay:计时器事件间的延迟（以毫秒为单位）<br />
//repeatCount:设置的计时器运行总次数，如果为0则表无限次数，直至调用stop()方法或程序停止<br />
var myTimer:Timer = new Timer(1000, 3);<br />
myTimer.addEventListener(&quot;timer&quot;, timerHandler);<br />
myTimer.addEventListener(&quot;timerComplete&quot;, timerCompleteHandler);<br />
myTimer.start();</p>
<p>function timerHandler(e:TimerEvent):void {<br />
&nbsp;trace(&quot;Timer: &quot; + e.target.currentCount);<br />
}</p>
<p>function timerCompleteHandler(e:TimerEvent):void {<br />
&nbsp;trace(&quot;Complete: &quot; + e.target.delay);<br />
}</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/93.htm</link>
			<title><![CDATA[Flash OBJECT and EMBED tag attributes]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Wed,28 Nov 2007 10:20:29 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=93</guid>
		<description><![CDATA[<h3 id="required">Required attributes</h3>
<p>The following attributes are required within the <code>object</code> and/or <code>embed</code> tags when adding a Flash movie to an HTML page:</p>
<h4>Both <code>object</code> and <code>embed</code>:</h4>
<ul>
    <li><code>width</code> - Specifies the width of the movie in either pixels or percentage of browser window.</li>
    <li><code>height</code> - Specifies the height of the movie in either pixels or percentage of browser window.</li>
</ul>
<h4><code>object</code> tag only:</h4>
<ul>
    <li><strong><code>classid</code></strong> - Identifies the ActiveX control for the browser. (See example code in TechNote <a href="http://kb.adobe.com/cfusion/knowledgebase/index.cfm?id=tn_4150">tn_4150</a> for the correct value.)</li>
    <li><strong><code>codebase</code></strong> - Identifies the location of the Flash Player ActiveX control so that the browser can automatically download it if it is not already installed. (See example code in TechNote <a href="http://kb.adobe.com/cfusion/knowledgebase/index.cfm?id=tn_4150">tn_4150</a> for the correct value.)</li>
    <li><strong><code>movie (param)</code></strong> - Specifies the location (URL) of the movie to be loaded.</li>
</ul>
<h4><code>embed</code> tag only:</h4>
<ul>
    <li><strong><code>src</code></strong> - Specifies the location (URL) of the movie to be loaded.</li>
    <li><strong><code>pluginspage</code></strong> - Identifies the location of the Flash Player plug-in so that the user can download it if it is not already installed. EMBED only. (See example code in TechNote <a href="http://kb.adobe.com/cfusion/knowledgebase/index.cfm?id=tn_4150">tn_4150</a> for the correct value.)</li>
</ul>
<h3 id="optional">Optional attributes and possible values:</h3>
<p>The following attributes are optional when defining the <code>object</code> and/or <code>embed</code> tags. For <code>object</code> , all attributes are defined in <code>param</code> tags unless otherwise specified:</p>
<ul>
    <li><code>id</code> (attribute for <code>object</code>, <code>object</code> only) - <em>Movie Identifier.</em> Identifies the Flash movie to the host environment (a web browser, for example) so that it can be referenced using a scripting language.</li>
    <li><code>name</code> (<code>embed</code> only) - <em>Movie name.</em> Identifies the Flash movie to the host environment (a web browser, typically) so that it can be referenced using a scripting language such as JavaScript or VBScript.</li>
    <li><strong><code>swliveconnect</code></strong> - Possible values: true, false. Specifies whether the browser should start Java when loading the Flash Player for the first time. The default value is false if this attribute is omitted. If you use JavaScript and Flash on the same page, Java must be running for the FSCommand to work.</li>
    <li><code>play</code> - Possible values: true, false. Specifies whether the movie begins playing immediately on loading in the browser. The default value is true if this attribute is omitted.</li>
    <li><code>loop</code> - Possible values: true, false. Specifies whether the movie repeats indefinitely or stops when it reaches the last frame. The default value is true if this attribute is omitted.</li>
    <li><code>menu</code> - Possible values: true, false.
    <ul>
        <li><code>true</code> displays the full menu, allowing the user a variety of options to enhance or control playback.</li>
        <li><code>false</code> displays a menu that contains only the Settings option and the About Flash option.</li>
    </ul>
    </li>
    <li><code>quality</code> - Possible values: low, high, autolow, autohigh, best.
    <ul>
        <li><code>low</code> favors playback speed over appearance and never uses anti-aliasing.</li>
        <li><code>autolow</code> emphasizes speed at first but improves appearance whenever possible. Playback begins with anti-aliasing turned off. If the Flash Player detects that the processor can handle it, anti-aliasing is turned on.</li>
        <li><code>autohigh</code> emphasizes playback speed and appearance equally at first but sacrifices appearance for playback speed if necessary. Playback begins with anti-aliasing turned on. If the actual frame rate drops below the specified frame rate, anti-aliasing is turned off to improve playback speed. Use this setting to emulate the View &gt; Antialias setting in Flash.</li>
        <li><code>medium</code> applies some anti-aliasing and does not smooth bitmaps. It produces a better quality than the Low setting, but lower quality than the High setting.</li>
        <li><code>high</code> favors appearance over playback speed and always applies anti-aliasing. If the movie does not contain animation, bitmaps are smoothed; if the movie has animation, bitmaps are not smoothed.</li>
        <li><code>best</code> provides the best display quality and does not consider playback speed. All output is anti-aliased and all bitmaps are smoothed.</li>
    </ul>
    </li>
    <li><code>scale</code> - Possible values: showall, noborder, exactfit.
    <ul>
        <li><code>default</code> (Show all) makes the entire movie visible in the specified area without distortion, while maintaining the original aspect ratio of the movie. Borders may appear on two sides of the movie.</li>
        <li><code>noorder</code> scales the movie to fill the specified area, without distortion but possibly with some cropping, while maintaining the original aspect ratio of the movie.</li>
        <li><code>exactfit</code> makes the entire movie visible in the specified area without trying to preserve the original aspect ratio. Distortion may occur.</li>
    </ul>
    </li>
    <li><code>align</code> (attribute for Object) - Possible values: l, t, r, b.
    <ul>
        <li>Default centers the movie in the browser window and crops edges if the browser window is smaller than the movie.</li>
        <li><code>l</code> (left), <code>r</code> (right), <code>t</code> (top), and <code>b</code> (bottom) align the movie along the corresponding edge of the browser window and crop the remaining three sides as needed.</li>
    </ul>
    </li>
    <li><code>salign</code> - Possible values: l, t, r, b, tl, tr, bl, br.
    <ul>
        <li><code>l</code>, <code>r</code>, <code>t</code>, and <code>b</code> align the movie along the left, right, top or bottom edge, respectively, of the browser window and crop the remaining three sides as needed.</li>
        <li><code>tl</code> and <code>tr</code> align the movie to the top left and top right corner, respectively, of the browser window and crop the bottom and remaining right or left side as needed.</li>
        <li><code>bl</code> and <code>br</code> align the movie to the bottom left and bottom right corner, respectively, of the browser window and crop the top and remaining right or left side as needed.</li>
    </ul>
    </li>
    <li><code>wmode</code> - Possible values: window, opaque, transparent. Sets the Window Mode property of the Flash movie for transparency, layering, and positioning in the browser.
    <ul>
        <li><code>window</code> - movie plays in its own rectangular window on a web page.</li>
        <li><code>opaque</code> - the movie hides everything on the page behind it.</li>
        <li><code>transparent</code> - the background of the HTML page shows through all transparent portions of the movie, this may slow animation performance.</li>
    </ul>
    </li>
    <li><code>bgcolor</code> - <em>[ hexadecimal RGB value]</em> in the format <em>#RRGGBB</em> . Specifies the background color of the movie. Use this attribute to override the background color setting specified in the Flash file. This attribute does not affect the background color of the HTML page.</li>
    <li><code>base</code> - . or <em>[base directory]</em> or <em>[URL]</em>. Specifies the base directory or URL used to resolve all relative path statements in the Flash Player movie. This attribute is helpful when your Flash Player movies are kept in a different directory from your other files.</li>
    <li><code>flashvars</code> - Possible values: <em>variable to pass to Flash Player</em>. Requires Macromedia Flash Player 6 or later.
    <ul>
        <li>Used to send root level variables to the movie. The format of the string is a set of name=value combinations separated by '&amp;'.</li>
        <li>Browsers will support string sizes of up to 64KB (65535 bytes) in length.</li>
        <li>For more information on FlashVars, please refer to &quot;Using FlashVars to pass variables to a SWF&quot; (TechNote <a href="http://kb.adobe.com/cfusion/knowledgebase/index.cfm?id=tn_16417">tn_16417</a>).</li>
    </ul>
    </li>
</ul>
<p><strong>Note:</strong> Values in brackets and italics indicate that the developer chooses the value.</p>
<p><a href="http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_12701&amp;sliceId=2">http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_12701&amp;sliceId=2</a></p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/92.htm</link>
			<title><![CDATA[给tr加highlight]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Mon,12 Nov 2007 10:40:21 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=92</guid>
		<description><![CDATA[<p>&lt;tr onmouseover=&quot;mouseover(this);&quot;&gt;</p>
<p>&lt;script type=&quot;text/javascript&quot;&gt;<br />
function mouseover(o){<br />
&nbsp;o.style.background=&quot;#f5f5f5&quot;;<br />
&nbsp;o.onmouseout=function(){<br />
&nbsp;&nbsp;o.style.background=&quot;#ffffff&quot;;<br />
&nbsp;}<br />
}<br />
&lt;/script&gt;</p>
<p>&lt;tr onmouseover=&quot;highlight(this,'#F9F9F9');&quot;&gt;</p>
<p>function highlight(o,c){<br />
&nbsp;o.style.backgroundColor=c;<br />
&nbsp;o.onmouseout=function(){<br />
&nbsp;&nbsp;o.style.backgroundColor=&quot;&quot;;<br />
&nbsp;}<br />
}</p>
<p>IE/FF/Safari/Opera</p>
<p>&nbsp;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/91.htm</link>
			<title><![CDATA[Windows Media Player Firefox Plugin ]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Thu,01 Nov 2007 17:50:52 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=91</guid>
		<description><![CDATA[<p>让你的Firefox支持WMP，下载地址：</p>
<p><a href="http://port25.technet.com/pages/windows-media-player-firefox-plugin-download.aspx">http://port25.technet.com/pages/windows-media-player-firefox-plugin-download.aspx</a></p>
<p>文件大小:302K<br />
&nbsp;<br />
安装前请关闭所有浏览器！</p>
<p>调用小区别：</p>
<p>IE:&lt;object classid=&quot;clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6&quot; /&gt;</p>
<p>Firefox:&lt;object type=&quot;application/x-ms-wmp&quot; /&gt;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/90.htm</link>
			<title><![CDATA[ExternalInterface.call IE错误]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Mon,29 Oct 2007 12:29:14 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=90</guid>
		<description><![CDATA[<p>测试ExternalInterface.call时，IE报错&ldquo;null....&rdquo;，其他浏览器FF,Safari,Opera都没错，百思不得其解。</p>
<p>终于搞了个Windows Script Debugger看一下究竟，发现IE下找不到对象ID:</p>
<p>xx.getElementById(&quot;&quot;).xx</p>
<p>所以给插入的flash加个ID就OK了！</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/89.htm</link>
			<title><![CDATA[一个圆角菜单]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Sat,29 Sep 2007 09:32:04 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=89</guid>
		<description><![CDATA[<p>&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;<br />
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;<br />
&lt;head&gt;<br />
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;<br />
&lt;title&gt;TAB&lt;/title&gt;<br />
&lt;style type=&quot;text/css&quot;&gt;<br />
/* topmenu */<br />
#topmenu { clear:both; margin-left:230px; height:26px; line-height:26px; display:block; }<br />
#topmenu a { display:block; position:relative; text-decoration:none; float:left; margin-right:-19px; height:26px; overflow:hidden; font-weight:bold; }<br />
#topmenu a span { display:block; height:26px; float:left; padding:0 22px 0 3px; background:url(http://www.cenfun.com/blog/attachments/month_0709/v20079299297.gif) right top; position:relative; z-index:100; line-height:26px; }<br />
#topmenu a b { display:block; float:left; width:19px; height:26px; background:url(http://www.cenfun.com/blog/attachments/month_0709/v20079299297.gif) left top; position:relative; z-index:200; }<br />
#topmenu a:hover { border:0; z-index:700; cursor:pointer; }<br />
#topmenu a:hover b { background-position: left center; }<br />
#topmenu a:hover span { background-position: right center; color:#005500; }<br />
#topmenu a.topact, #topmenu a.topact:hover { border:0; z-index:800; }<br />
#topmenu a.topact b, #topmenu a.topact:hover b { background-position: left bottom; }<br />
#topmenu a.topact span, #topmenu a.topact:hover span { background-position: right bottom; color:#336699; font-weight:bold; }<br />
#topmenu .z0 { z-index:210; }<br />
#topmenu .z1 { z-index:200; }<br />
#topmenu .z2 { z-index:190; }<br />
#topmenu .z3 { z-index:180; }<br />
#topmenu .z4 { z-index:170; }<br />
#topmenu .z5 { z-index:160; }<br />
#topmenu .z6 { z-index:150; }<br />
#topmenu .z7 { z-index:140; }<br />
&lt;/style&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;div id=&quot;topmenu&quot;&gt;&lt;a href=&quot;#&quot; class=&quot;topact z0&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;span&gt;menu1&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;#&quot; class=&quot;z1&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;span&gt;menu2&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;#&quot; class=&quot;z2&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;span&gt;menu3&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;#&quot; class=&quot;z3&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;span&gt;menu4&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;#&quot; class=&quot;z4&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;span&gt;menu5&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;#&quot; class=&quot;z5&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;span&gt;menu6&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;#&quot; class=&quot;z6&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;span&gt;menu7&lt;/span&gt;&lt;/a&gt;&lt;a href=&quot;#&quot; class=&quot;z7&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;span&gt;menu8&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/88.htm</link>
			<title><![CDATA[js画sel&#101;ct下拉列表树结构]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Tue,18 Sep 2007 12:55:41 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=88</guid>
		<description><![CDATA[<p>&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;<br />
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;<br />
&lt;head&gt;<br />
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;<br />
&lt;title&gt;Select Tree&lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;style type=&quot;text/css&quot;&gt;<br />
select.tree option { font-family:sans-serif; font-size:12px; }<br />
&lt;/style&gt;<br />
&lt;select name=&quot;Select_Tree&quot; id=&quot;Select_Tree&quot; size=&quot;20&quot; multiple=&quot;multiple&quot; class=&quot;tree&quot;&gt;<br />
&nbsp; &lt;script type=&quot;text/javascript&quot;&gt;<br />
var treedata=new Array();<br />
treedata.push('10,00,computer,');<br />
treedata.push('20,00,finance,');<br />
treedata.push('30,00,sport,');<br />
treedata.push('101010,1010,OS,');<br />
treedata.push('50,00,car,');<br />
treedata.push('101010101010,1010101010,Fedora5,1');<br />
treedata.push('101010101011,1010101010,Fedora6,');<br />
treedata.push('10101010101010,101010101010,Fedora5.1,');<br />
treedata.push('1010101010101010,10101010101010,Fedora5.1.1,');<br />
treedata.push('10101110,101011,MSN,');<br />
treedata.push('10101111,101011,QQ,');<br />
treedata.push('1010,10,SoftWare,');<br />
treedata.push('1020,10,HardWare,');<br />
treedata.push('101011,1010,Program,');<br />
treedata.push('101012,1010,Files,');<br />
treedata.push('10101210,101012,Files1,');<br />
treedata.push('10101010,101010,Linux,');<br />
treedata.push('1010101010,10101010,Fedora,');<br />
showSelectTree(treedata);<br />
function showSelectTree(data){<br />
&nbsp;for(var i=0;i&lt;data.length;i++){<br />
&nbsp;&nbsp;data[i]=data[i].split(&quot;,&quot;);<br />
&nbsp;}<br />
&nbsp;document.write(SelectTree(data,&quot;00&quot;,&quot;&quot;));<br />
}<br />
function SelectTree(treedata,id,depthStr){<br />
&nbsp;var thisdata=new Array();<br />
&nbsp;var html=&quot;&quot;;<br />
&nbsp;var treeType=&quot;&quot;;<br />
&nbsp;var isSelected=&quot;&quot;;<br />
&nbsp;//get same level<br />
&nbsp;for (var i = 0; i&lt;treedata.length; i++) {<br />
&nbsp;&nbsp;if (treedata[i][1] == id) {<br />
&nbsp;&nbsp;&nbsp;thisdata[thisdata.length] = treedata[i];<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
&nbsp;for (var i = 0; i&lt;thisdata.length; i++) {<br />
&nbsp;&nbsp;if (i == thisdata.length-1) {<br />
&nbsp;&nbsp;&nbsp;treeType = depthStr+&quot;└&quot;;<br />
&nbsp;&nbsp;} else {<br />
&nbsp;&nbsp;&nbsp;treeType = depthStr+&quot;├&quot;;<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;if(thisdata[i][3]==1){<br />
&nbsp;&nbsp;&nbsp;isSelected='selected=&quot;selected&quot;';<br />
&nbsp;&nbsp;}else{<br />
&nbsp;&nbsp;&nbsp;isSelected=&quot;&quot;;<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;html += '&lt;option value=&quot;'+thisdata[i][0]+'&quot; '+isSelected+'&gt;'+treeType+'&amp;nbsp;'+thisdata[i][2]+'&lt;/option&gt;';<br />
&nbsp;&nbsp;//has child<br />
&nbsp;&nbsp;if (hasChild(treedata,thisdata[i][0])) {<br />
&nbsp;&nbsp;&nbsp;var childDepthStr=depthStr;<br />
&nbsp;&nbsp;&nbsp;//last one<br />
&nbsp;&nbsp;&nbsp;if (i == thisdata.length-1) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;childDepthStr+=&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;;<br />
&nbsp;&nbsp;&nbsp;} else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;childDepthStr+=&quot;│&amp;nbsp;&quot;;<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;html += SelectTree(treedata,thisdata[i][0],childDepthStr);<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
&nbsp;return html;<br />
}<br />
function hasChild(treedata,id){<br />
&nbsp;for(var i=0;i&lt;treedata.length;i++){<br />
&nbsp;&nbsp;if(treedata[i][1]==id){<br />
&nbsp;&nbsp;&nbsp;return true;<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
&nbsp;return false;<br />
}<br />
&lt;/script&gt;<br />
&lt;/select&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</p>
<p>其中样式的字体设置是为了兼容多种浏览器的树枝符号宽度。</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/87.htm</link>
			<title><![CDATA[一个Tab选项卡]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Thu,13 Sep 2007 10:38:31 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=87</guid>
		<description><![CDATA[<p>//支持FF IE</p>
<p>&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;<br />
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;<br />
&lt;head&gt;<br />
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;<br />
&lt;title&gt;Tab&lt;/title&gt;<br />
&lt;style type=&quot;text/css&quot;&gt;<br />
* { padding:0px 0px; margin:0px 0px; font-family: Verdana, Arial, Helvetica, sans-serif; font-size:12px; }<br />
a:link, a:visited { color:#333333; text-decoration:none; }<br />
a:hover { color:#333333; text-decoration:none; }<br />
/* Tables */<br />
.tablepanels { margin:10px 10px; position:relative; margin-top:34px; }<br />
.tablepanels #tablemenu { width:100%; line-height:24px; height:24px; position:absolute; top:-24px; }<br />
.tablepanels #tablemenu a:link, .tablepanels #tablemenu a:visited { display:block; padding:0px 15px; float:left; margin-right:3px; background-color:#e1e1e1; border-bottom:1px solid #cccccc; }<br />
.tablepanels #tablemenu a:hover { background-color:#f5f5f5; text-decoration:none; }<br />
.tablepanels #tablemenu a.hover:link, .tablepanels #tablemenu a.hover:visited { background-color:#ffffff; border:1px solid #cccccc; border-bottom:none; font-weight:bold; }<br />
.tablepanels #tablebody { clear:both; border:1px solid #cccccc; }<br />
.tablepanels #tablebody div { padding:10px 10px; }<br />
&lt;/style&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;div class=&quot;tablepanels&quot;&gt;<br />
&nbsp; &lt;div id=&quot;tablemenu&quot;&gt;&lt;a href=&quot;javascript:displayTab(0);&quot;&gt;Tab 01&lt;/a&gt;&lt;a href=&quot;javascript:displayTab(1);&quot;&gt;Tab 02&lt;/a&gt;&lt;a href=&quot;javascript:displayTab(2);&quot;&gt;Tab 03&lt;/a&gt;&lt;/div&gt;<br />
&nbsp; &lt;div id=&quot;tablebody&quot;&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;Content 1&lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;Content 2&lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;Content 3&lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />
&nbsp; &lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;script type=&quot;text/javascript&quot;&gt;<br />
var theMenus=document.getElementById(&quot;tablemenu&quot;);<br />
var theBodys=document.getElementById(&quot;tablebody&quot;);<br />
extractNodes(theMenus);<br />
extractNodes(theBodys);<br />
function extractNodes(pNode){<br />
&nbsp;//1-ELEMENT 2-ATTRIBUTE 3-TEXT<br />
&nbsp;if(pNode.nodeType==3){return;}<br />
&nbsp;for(var i=0;i&lt;pNode.childNodes.length;i++){<br />
&nbsp;&nbsp;if(pNode.childNodes[i].nodeType==3){<br />
&nbsp;&nbsp;&nbsp;pNode.removeChild(pNode.childNodes[i]);<br />
&nbsp;&nbsp;&nbsp;i--;<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
}<br />
function displayTab(n){<br />
&nbsp;for(var i=0;i&lt;theBodys.childNodes.length;i++){<br />
&nbsp;&nbsp;if(theMenus.childNodes[i]){<br />
&nbsp;&nbsp;&nbsp;theMenus.childNodes[i].className=(i==n?&quot;hover&quot;:&quot;&quot;);<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;theBodys.childNodes[i].style.display=(i==n?&quot;&quot;:&quot;none&quot;);<br />
&nbsp;}<br />
}<br />
displayTab(0);<br />
&lt;/script&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/86.htm</link>
			<title><![CDATA[[AS2]Flash本地数据保存方法]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Thu,06 Sep 2007 20:37:10 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=86</guid>
		<description><![CDATA[<p>//建立Flash本地数据保存对象<br />
var cenfun_local_info:SharedObject = SharedObject.getLocal(&quot;cenfunLocalData&quot;, &quot;/&quot;);<br />
//var data_size = cenfun_local_info.getSize();<br />
//trace(data_size);//查看大小<br />
//保存信息到本地，n:名称&nbsp; v:值<br />
function set_local_info(n:String, v) {<br />
&nbsp;set(&quot;_root.cenfun_local_info.data.&quot;+n, v);<br />
&nbsp;_root.cenfun_local_info.flush();<br />
}<br />
//取得本地数据<br />
function get_local_info(n:String) {<br />
&nbsp;return eval(&quot;_root.cenfun_local_info.data.&quot;+n);<br />
}<br />
//set_local_info(&quot;cenfunTimes&quot;,&quot;100&quot;);<br />
//trace(get_local_info(&quot;cenfunTimes&quot;));</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/85.htm</link>
			<title><![CDATA[ASP/VBScript数组过滤Filter 函数]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Fri,31 Aug 2007 10:26:31 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=85</guid>
		<description><![CDATA[<p>Filter 函数<br />
返回下标从零开始的 数组，其中包含以特定过滤条件为基础的字符串数组的子集。</p>
<p>Filter(InputStrings, Value[, Include[, Compare]])</p>
<p>参数<br />
InputStrings</p>
<p>必选项。一维数组，要在其中搜索字符串。</p>
<p>Value</p>
<p>必选项。要搜索的字符串。</p>
<p>Include</p>
<p>可选项。Boolean 值，指定返回的子字符串是否包含 Value。如果 Include 为 True，Filter 将返回包含子字符串 Value 的数组子集。如果 Include 为 False，Filter 将返回不包含子字符串 Value 的数组子集。</p>
<p>Compare</p>
<p>可选项。数字值指出使用的比较字符串 类型.请参阅值设置部分.</p>
<p>设置<br />
Compare 参数可以有以下值：</p>
<p>常数 值 描述 <br />
vbBinaryCompare 0 执行二进制比较。 <br />
vbTextCompare 1 执行文本比较。</p>
<p><br />
说明<br />
如果在 InputStrings 中没有找到与 Value 匹配的值，Filter 将返回空数组。如果 InputStrings 为 Null 或者不是一维数组，则会发生错误。</p>
<p>由 Filter 函数返回的数组仅包含足以包含匹配项数目的元素。</p>
<p>下面例子利用 Filter 函数返回包含搜索条件 &quot;Mon&quot; 的数组:</p>
<p>Dim MyIndex<br />
Dim MyArray (3)<br />
MyArray(0) = &quot;Sunday&quot;<br />
MyArray(1) = &quot;Monday&quot;<br />
MyArray(2) = &quot;Tuesday&quot;<br />
MyIndex = Filter(MyArray, &quot;Mon&quot;) 'MyIndex 包含 &quot;Monday&quot;。<br />
MyIndex = Filter(MyArray, &quot;Mon&quot;, False)&nbsp; 'MyIndex 包含 &quot;Sunday&quot;和&quot;Tuesday&quot;。</p>
<p>可用于删除数组某元素</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/84.htm</link>
			<title><![CDATA[JS实时刷新日期时间]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Thu,30 Aug 2007 12:21:41 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=84</guid>
		<description><![CDATA[<p>// time<br />
function getNow(){<br />
&nbsp;if(document.getElementById(&quot;timenow&quot;)){<br />
&nbsp;&nbsp;var myDate=new Date();<br />
&nbsp;&nbsp;var myMonth=myDate.getMonth();<br />
&nbsp;&nbsp;var myWeek=myDate.getDay();<br />
&nbsp;&nbsp;var monthArr=new Array(&quot;January&quot;,&quot;February&quot;,&quot;March&quot;,&quot;April&quot;,&quot;May&quot;,&quot;June&quot;,&quot;July&quot;,&quot;August&quot;,&quot;September&quot;,&quot;October&quot;,&quot;November&quot;,&quot;December&quot;);<br />
&nbsp;&nbsp;var weekArr=new Array(&quot;Sunday&quot;,&quot;Monday&quot;,&quot;Tuesday&quot;,&quot;Wednesday&quot;,&quot;Thursday&quot;,&quot;Friday&quot;,&quot;Saturday&quot;);<br />
&nbsp;&nbsp;var thisWeek=weekArr[myWeek];<br />
&nbsp;&nbsp;if(myWeek==0||myWeek==6){thisWeek=&quot;&lt;font color=#ff0000&gt;&quot;+thisWeek+&quot;&lt;/font&gt;&quot;;}<br />
&nbsp;&nbsp;var str=monthArr[myMonth]+&quot;,&quot;+myDate.getDate()+&quot;&amp;nbsp;&quot;+myDate.getFullYear()+&quot;&amp;nbsp;&amp;nbsp;&quot;+thisWeek+&quot;&amp;nbsp;&amp;nbsp;&quot;+myDate.getHours()+&quot;:&quot;+myDate.getMinutes()+&quot;:&quot;+myDate.getSeconds();<br />
&nbsp;&nbsp;document.getElementById(&quot;timenow&quot;).innerHTML=str;<br />
&nbsp;}<br />
}<br />
window.onload=function(){<br />
&nbsp;window.setInterval(&quot;getNow()&quot;,1000);<br />
};</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/articles/83.htm</link>
			<title><![CDATA[一个IE滚动条样式]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Articles]]></category>
			<pubDate>Tue,28 Aug 2007 17:18:03 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=83</guid>
		<description><![CDATA[<p>html, body {<br />
&nbsp;scrollbar-face-color: #799AE1;<br />
&nbsp;scrollbar-highlight-color: #799AE1;<br />
&nbsp;scrollbar-shadow-color: #799AE1;<br />
&nbsp;scrollbar-darkshadow-color: #799AE1;<br />
&nbsp;scrollbar-3dlight-color: #799AE1;<br />
&nbsp;scrollbar-arrow-color: #FFFFFF;<br />
&nbsp;scrollbar-track-color: #AABFEC;<br />
&nbsp;scrollbar-base-color: #FFFFFF;<br />
}</p>
<p>单只用body，在DOCTYPE声明下还不行，加个html就可以了，当然只限IE.</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/82.htm</link>
			<title><![CDATA[圆角矩形,阴影滤镜]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Wed,08 Aug 2007 11:30:39 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=82</guid>
		<description><![CDATA[<p>//画圆角矩形<br />
function drawRoundBox(mc:MovieClip, radius:Number, mcX:Number, mcY:Number, mcW:Number, mcH:Number, c:Number, a:Number):Void {<br />
&nbsp;//mc.lineStyle(1, 0x000000, 100, true);<br />
&nbsp;mc.beginFill(c, a);<br />
&nbsp;mc.moveTo((mcX+radius), mcY);<br />
&nbsp;mc.lineTo((mcX+(mcW-radius)), mcY);<br />
&nbsp;mc.curveTo((mcX+mcW), mcY, (mcX+mcW), (mcY+radius));<br />
&nbsp;mc.lineTo((mcX+mcW), (mcY+(mcH-radius)));<br />
&nbsp;mc.curveTo((mcX+mcW), (mcY+mcH), (mcX+(mcW-radius)), (mcY+mcH));<br />
&nbsp;mc.lineTo((mcX+radius), (mcY+mcH));<br />
&nbsp;mc.curveTo(mcX, (mcY+mcH), mcX, (mcY+(mcH-radius)));<br />
&nbsp;mc.lineTo(mcX, (mcY+radius));<br />
&nbsp;mc.curveTo(mcX, mcY, (mcX+radius), mcY);<br />
&nbsp;mc.endFill();<br />
}</p>
<p>//阴影滤镜<br />
function shadowMc(mc:MovieClip, distance:Number, angle:Number, color:Number, alpha:Number, blurX:Number, blurY:Number, strength:Number) {<br />
&nbsp;var quality:Number = 3;<br />
&nbsp;var inner:Boolean = false;<br />
&nbsp;var knockout:Boolean = false;<br />
&nbsp;var hideObject:Boolean = false;<br />
&nbsp;var filter:DropShadowFilter = new DropShadowFilter(distance, angle, color, alpha, blurX, blurY, strength, quality, inner, knockout, hideObject);<br />
&nbsp;var filterArray:Array = new Array();<br />
&nbsp;filterArray.push(filter);<br />
&nbsp;mc.filters = filterArray;<br />
}<br />
//调用：<br />
import flash.filters.DropShadowFilter;<br />
shadowMc(mc, 5, 45, 0, .8, 5, 5, 1);<br />
//阴影滤镜参数详解：<br />
/*<br />
alpha:Number阴影颜色的 Alpha 透明度值。<br />
angle:Number阴影的角度。<br />
blurX:Number水平模糊量。<br />
blurY:Number垂直模糊量。<br />
color:Number阴影的颜色。<br />
distance:Number阴影的偏移距离，以像素为单位。<br />
hideObject:Boolean表示是否隐藏对象。<br />
inner:Boolean表示阴影是否为内侧阴影。<br />
knockout:Boolean应用挖空效果 (true)，这将有效地使对象的填色变为透明，并显示文档的背景颜色。<br />
quality:Number应用滤镜的次数。<br />
strength:Number压印或跨页的强度。<br />
*/</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/articles/81.htm</link>
			<title><![CDATA[PS草地]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Articles]]></category>
			<pubDate>Wed,08 Aug 2007 09:38:13 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=81</guid>
		<description><![CDATA[<p>网上看见一个方法，记下：</p>
<p>1，新建图层填充<br />
2，前景草绿色，背景深绿色<br />
3，滤镜-渲染-纤维<br />
4，滤镜-风格化-风-飓风<br />
5，转90度</p>
<p>酌情调整即可</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/articles/67.htm</link>
			<title><![CDATA[星际争霸2 - StarCraft II - 新兵种更新]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Articles]]></category>
			<pubDate>Sun,22 Jul 2007 09:53:41 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=67</guid>
		<description><![CDATA[<p>星际2官方站点：<a href="http://www.starcraft2.com/">http://www.starcraft2.com/</a>&nbsp;&nbsp;里面有最新的视频，壁纸，新闻，种族更新(可以听各种兵种新配的声音)等等。</p>
<p>暴雪一出，必是精品，期待正式发布！<a href="http://www.blizzard.com/">http://www.blizzard.com/</a></p>
<p>神族(Protoss)<font color="#ffffff">//转载请注明来自CenFun.com</font></p>
<p>Twilight Archon 曙光执政官:<br />
<embed src="http://www.starcraft2.com/flash/global/unitsplayer_protoss_twarchon.swf" width="250" height="185" scale="showall" play="true" loop="true" menu="true" wmode="Window" quality="1" type="application/x-shockwave-flash"></embed></p>
<p><embed src="http://us.media.blizzard.com/starcraft2/flash/global/movieplayer_protoss_twarchon.swf" width="333" height="247" scale="ShowAll" play="true" loop="true" menu="true" wmode="Window" quality="1" type="application/x-shockwave-flash"></embed></p>
<p>Warp Ray 镭射舰:<br />
<embed src="http://www.starcraft2.com//flash/global/unitsplayer_protoss_warpray.swf" width="250" height="185" scale="ShowAll" play="true" loop="true" menu="true" wmode="Window" quality="1" type="application/x-shockwave-flash"></embed></p>
<p><embed src="http://us.media.blizzard.com/starcraft2/flash/global/movieplayer_protoss_warpray.swf" width="333" height="247" scale="ShowAll" play="true" loop="true" menu="true" wmode="Window" quality="1" type="application/x-shockwave-flash"></embed></p>
<p>Colossus 巨人:<br />
<embed src="http://www.starcraft2.com/flash/global/unitsplayer_protoss_colossus.swf" width="250" height="185" scale="ShowAll" play="true" loop="true" menu="true" wmode="Window" quality="1" type="application/x-shockwave-flash"></embed></p>
<p>Phoenix 凤凰:<br />
<embed src="http://www.starcraft2.com/flash/global/unitsplayer_protoss_phoenix.swf" width="250" height="185" scale="ShowAll" play="true" loop="true" menu="true" wmode="Window" quality="1" type="application/x-shockwave-flash"></embed>&nbsp;</p>
<p><embed src="http://us.media.blizzard.com/starcraft2/flash/global/movieplayer_protoss_phoenix.swf" width="333" height="247" scale="ShowAll" play="true" loop="true" menu="true" wmode="Window" quality="1" type="application/x-shockwave-flash"></embed></p>
<p>我们的撮撮兵：<font size="2"><font color="#c60a00">Zealot</font>(狂战士) </font>My life for Aiur! <br />
<embed src="http://www.starcraft2.com/flash/global/unitsplayer_protoss_zealot.swf?shadow_glow=20&amp;sound_total=23&amp;sound_1=http://www.starcraft2.com/sounds/protoss_zealot/sound_zealot_atkg_1.mp3&amp;sound_2=http://www.starcraft2.com/sounds/protoss_zealot/sound_zealot_atkg_2.mp3&amp;sound_3=http://www.starcraft2.com/sounds/protoss_zealot/sound_zealot_atk_1.mp3&amp;sound_4=http://www.starcraft2.com/sounds/protoss_zealot/sound_zealot_atk_2.mp3&amp;f=f.swf" width="250" height="185" scale="showall" play="true" loop="true" menu="true" wmode="Window" quality="1" type="application/x-shockwave-flash" allowfullscreen="true"></embed></p>
<p>&nbsp;Immortal：不朽战士<font color="#ffffff">//转载请注明来自CenFun.com</font><br />
<embed src="http://us.media.blizzard.com/starcraft2/flash/global/unitsplayer.swf?flang=en_us&amp;movieURL=http://us.media.blizzard.com/starcraft2/movies/s_units_immortal.flv&amp;movieSOUND=http://www.starcraft2.com/sounds/sound_immortal_ready.mp3&amp;f=f.swf" width="250" height="185" scale="ShowAll" play="true" loop="true" menu="true" wmode="Window" quality="1" type="application/x-shockwave-flash"></embed></p>
<p>Stalker：潜行者<font color="#ffffff">//转载请注明来自CenFun.com</font><br />
<embed src="http://us.media.blizzard.com/starcraft2/flash/global/unitsplayer.swf?flang=en_us&amp;movieURL=http://us.media.blizzard.com/starcraft2/movies/s_units_stalker.flv&amp;movieSOUND=http://www.starcraft2.com/sounds/sound_stalker_ready.mp3&amp;f=f.swf" width="250" height="185" scale="ShowAll" play="true" loop="true" menu="true" wmode="Window" quality="1" type="application/x-shockwave-flash"></embed></p>
<p>Phase Prism 相位棱镜:<font color="#ffffff">载请注明来自CenFun.com</font><br />
<embed src="http://us.media.blizzard.com/starcraft2/flash/global/unitsplayer.swf?flang=en_us&amp;movieURL=http://us.media.blizzard.com/starcraft2/movies/s_units_phaseprism.flv&amp;movieSOUND=http://www.starcraft2.com/sounds/sound_phaseprism_totrmorph.mp3&amp;f=f.swf" width="250" height="185" scale="ShowAll" play="true" loop="true" menu="true" wmode="Window" quality="1" type="application/x-shockwave-flash"></embed><br />
<br />
<embed src="http://us.media.blizzard.com/starcraft2/flash/global/movieplayer.swf?flang=en_us&amp;movieURL=http://us.media.blizzard.com/starcraft2/movies/l_units_phaseprism_pylon.flv&amp;movieSOUND=http://www.starcraft2.com/sounds/sound_phaseprism_tophmorph.mp3&amp;f=f.swf" width="333" height="247" scale="ShowAll" play="true" loop="true" menu="true" wmode="Window" quality="1" type="application/x-shockwave-flash"></embed></p>
<p>Gateway / Warp Gate 兵营/传送门：<br />
<embed src="http://us.media.blizzard.com/starcraft2/flash/global/movieplayer.swf?flang=en_us&amp;movieURL=http://us.media.blizzard.com/starcraft2/movies/l_buildings_warpgate.flv&amp;movieSOUND=http://www.starcraft2.com/sounds/sound_gateway_what.mp3&amp;f=f.swf" width="333" height="247" scale="ShowAll" play="true" loop="true" menu="true" wmode="Window" quality="1" type="application/x-shockwave-flash"></embed></p>
<p>&nbsp;StarGate 星际之门:<br />
<embed src="http://www.starcraft2.com/flash/global/unitsplayer_protoss_stargate.swf" width="333" height="247" scale="ShowAll" play="true" loop="true" menu="true" wmode="Window" quality="1" type="application/x-shockwave-flash"></embed></p>
<p>&nbsp;更多官方视频下载：<a target="_blank" href="http://www.starcraft2.com/movies.xml">http://www.starcraft2.com/movies.xml</a></p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/80.htm</link>
			<title><![CDATA[JS检测浏览器(IE/Firefox/Safari/Opera)Flash版本]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Fri,20 Jul 2007 17:28:43 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=80</guid>
		<description><![CDATA[<p>&lt;script type=&quot;text/javascript&quot;&gt;<br />
function getFlashVer() {<br />
&nbsp;&nbsp;&nbsp; var f=&quot;&quot;;<br />
&nbsp;var n=navigator; <font color="#ffffff">//转载请注明来自CenFun.com</font><br />
&nbsp;&nbsp;&nbsp; if (n.plugins &amp;&amp; n.plugins.length) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (var ii=0;ii&lt;n.plugins.length;ii++) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (n.plugins[ii].name.indexOf('Shockwave Flash')!=-1) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; f=n.plugins[ii].description.split('Shockwave Flash ')[1].split(' ')[0];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; } else if (window.ActiveXObject) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (var ii=10;ii&gt;=2;ii--) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var fl=eval(&quot;new ActiveXObject('ShockwaveFlash.ShockwaveFlash.&quot;+ii+&quot;');&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (fl) {f=ii + '.0'; break; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch(e) {}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; document.write(&quot;Flash Player version: &lt;b&gt;&quot;+f+&quot;&lt;/b&gt;&quot;); <br />
}<br />
getFlashVer();<font color="#ffffff">//转载请注明来自CenFun.com</font><br />
&lt;/script&gt;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/79.htm</link>
			<title><![CDATA[AS3笔记-Loading-Preloader for Flash CS3]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Fri,20 Jul 2007 16:58:43 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=79</guid>
		<description><![CDATA[<p>//直接加载文档类</p>
<p>package src.cenfun{</p>
<p>&nbsp;import flash.display.Sprite;<br />
&nbsp;import flash.display.MovieClip;</p>
<p>&nbsp;import flash.text.TextField;<br />
&nbsp;import flash.text.TextFormat;<br />
&nbsp;import flash.text.TextFieldAutoSize;</p>
<p>&nbsp;import flash.events.*;</p>
<p>&nbsp;public class cmpPreloader extends MovieClip {<br />
&nbsp;&nbsp;private var mytext:TextField=new TextField();<br />
&nbsp;&nbsp;public function cmpPreloader() {<br />
&nbsp;&nbsp;&nbsp;stop();<br />
&nbsp;&nbsp;&nbsp;mytext.autoSize=TextFieldAutoSize.CENTER;<br />
&nbsp;&nbsp;&nbsp;mytext.selectable=false;<br />
&nbsp;&nbsp;&nbsp;mytext.background=true;<br />
&nbsp;&nbsp;&nbsp;mytext.defaultTextFormat=new TextFormat(&quot;Verdana&quot;,10,0x666666,null);<br />
&nbsp;&nbsp;&nbsp;addChild(mytext);<br />
&nbsp;&nbsp;&nbsp;loaderInfo.addEventListener(ProgressEvent.PROGRESS,progressHandler);<br />
&nbsp;&nbsp;&nbsp;loaderInfo.addEventListener(Event.COMPLETE,completeHandler);<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;private function progressHandler(evt:ProgressEvent):void {<br />
&nbsp;&nbsp;&nbsp;var p:Number=evt.bytesLoaded / evt.bytesTotal;<br />
&nbsp;&nbsp;&nbsp;var n:Number=Math.floor(p * 100);<br />
&nbsp;&nbsp;&nbsp;var str:String=&quot;Loading &quot; + n.toString() + &quot;%&quot;;<br />
&nbsp;&nbsp;&nbsp;if (str != mytext.text) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;mytext.text=str;<br />
&nbsp;&nbsp;&nbsp;&nbsp;mytext.x = stage.stageWidth / 2 - mytext.width / 2;<br />
&nbsp;&nbsp;&nbsp;&nbsp;mytext.y = stage.stageHeight / 2 - mytext.height;<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;private function completeHandler(event:Event):void {<br />
&nbsp;&nbsp;&nbsp;removeChild(mytext);<br />
&nbsp;&nbsp;&nbsp;play();<br />
&nbsp;&nbsp;&nbsp;addEventListener(Event.ENTER_FRAME,enterFrameHandler);<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;private function enterFrameHandler(event:Event):void {<br />
&nbsp;&nbsp;&nbsp;if (currentFrame &gt;= 3) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;removeEventListener(Event.ENTER_FRAME,enterFrameHandler);<br />
&nbsp;&nbsp;&nbsp;&nbsp;stop();<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
}</p>
<p>&nbsp;</p>
<p>//之前的---------------------</p>
<p>//AS3自身Loading，此代码帧上最好不要放其他元件，或单独用一个场景</p>
<p>var mytext:TextField = new TextField();<br />
mytext.autoSize = TextFieldAutoSize.CENTER;<br />
mytext.selectable=false;<br />
mytext.background = true;<br />
var myformat:TextFormat = new TextFormat();<br />
myformat.font = &quot;Verdana&quot;;<br />
myformat.size = 10;<br />
mytext.defaultTextFormat = myformat;<br />
addChild(mytext);<font color="#ffffff">//转载请注明来自CenFun.com</font></p>
<p>this.root.loaderInfo.addEventListener(Event.COMPLETE, loadComplete);<br />
this.root.loaderInfo.addEventListener(ProgressEvent.PROGRESS, showProgress);<br />
function loadComplete(event:Event):void {<br />
&nbsp;removeChild(mytext);<br />
&nbsp;play();<br />
}<br />
function showProgress(event:ProgressEvent):void {<br />
&nbsp;var p:Number=event.bytesLoaded/event.bytesTotal;<br />
&nbsp;var n:Number=Math.round(p*100);<br />
&nbsp;mytext.text=&quot;Loading &quot;+n.toString()+&quot;%&quot;;<br />
&nbsp;mytext.x=stage.stageWidth/2-mytext.width/2;<br />
&nbsp;mytext.y=stage.stageHeight/2-mytext.height;<br />
&nbsp;//trace(n);<br />
}<font color="#ffffff">//转载请注明来自CenFun.com</font></p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/78.htm</link>
			<title><![CDATA[获得上传图片大小]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Wed,18 Jul 2007 12:31:47 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=78</guid>
		<description><![CDATA[<p>&lt;input type=&quot;file&quot; onchange=&quot;showImgInfo(this)&quot; value=&quot;&quot; /&gt;&lt;span id=&quot;output&quot;&gt;&lt;/span&gt;<br />
&lt;script type=&quot;text/javascript&quot;&gt; <br />
document.write('&lt;img id=&quot;testImg&quot; src=&quot;&quot; style=&quot;position:absolute;left:0px;top:0px;visibility:hidden;&quot; /&gt;');<br />
var testImg=document.getElementById(&quot;testImg&quot;);<br />
var myTimeout;<br />
function showImgInfo(o){<br />
&nbsp;var url=o.value;<br />
&nbsp;if(url.indexOf(&quot;file:///&quot;)==-1){<br />
&nbsp;&nbsp;url=&quot;file:///&quot;+url;<br />
&nbsp;}<br />
&nbsp;testImg.src=url;<br />
&nbsp;myTimeout=window.setTimeout(&quot;outputMsg()&quot;,100);<br />
} <br />
function outputMsg(){ <br />
&nbsp;clearTimeout(myTimeout);<br />
&nbsp;var px=testImg.offsetWidth+&quot;x&quot;+testImg.offsetHeight;<br />
&nbsp;if(document.all){<br />
&nbsp;&nbsp;px+=&quot;/&quot;+Math.round(testImg.fileSize/10.24)/100+&quot;k&quot;;<br />
&nbsp;}<br />
&nbsp;document.getElementById(&quot;output&quot;).innerHTML=&quot;(&quot;+px+&quot;)&quot;; <br />
} <br />
&lt;/script&gt;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/77.htm</link>
			<title><![CDATA[iframe post]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Wed,11 Jul 2007 16:32:57 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=77</guid>
		<description><![CDATA[<p>var content = &quot;&quot;;<br />
var myTimeout = null;<br />
var myIframe = null;<br />
window.onload = function(){<br />
&nbsp;postData(content);<br />
};<font color="#ffffff">//转载请注明来自CenFun.com</font><br />
function postData(data) {<br />
&nbsp;var html_doc = document.getElementsByTagName('body')[0];<br />
&nbsp;var iframe = document.createElement('iframe');<br />
&nbsp;iframe.src = 'about:blank';//'javascript:void(0)';<br />
&nbsp;iframe.frameBorder = 0;<br />
&nbsp;iframe.width = 0;<br />
&nbsp;iframe.height = 0;<br />
&nbsp;myIframe = iframe;<br />
&nbsp;if (html_doc) {<br />
&nbsp;&nbsp;html_doc.appendChild(iframe);<br />
&nbsp;&nbsp;var str = '&lt;html&gt;&lt;body&gt;&lt;form method=&quot;POST&quot; enctype=&quot;application/x-www-form-urlencoded&quot; action=&quot;'+serverAddr+'&quot;&gt;&lt;textarea name=&quot;content&quot;&gt;&lt;/textarea&gt;&lt;/form&gt;&lt;/body&gt;&lt;/html&gt;';<br />
&nbsp;&nbsp;var doc = iframe.contentWindow.document;<br />
&nbsp;&nbsp;doc.open();<br />
&nbsp;&nbsp;doc.write(str);<br />
&nbsp;&nbsp;doc.close();<br />
&nbsp;&nbsp;var myForm = doc.getElementsByTagName('form')[0];<br />
&nbsp;&nbsp;if (myForm) {<br />
&nbsp;&nbsp;&nbsp;myForm.content.value = data;<br />
&nbsp;&nbsp;&nbsp;myForm.submit();<br />
&nbsp;&nbsp;&nbsp;myTimeout=setTimeout(&quot;clearForm()&quot;,200);<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
}<font color="#ffffff">//转载请注明来自CenFun.com</font><br />
function clearForm(){<br />
&nbsp;clearTimeout(myTimeout);<br />
&nbsp;myIframe.src = 'about:blank';&nbsp;<br />
}</p>
<p>//new way</p>
<p>document.write('&lt;iframe src=&quot;about:blank&quot; id=&quot;postIframe&quot; name=&quot;postIframe&quot; frameborder=&quot;0&quot; width=&quot;0&quot; height=&quot;0&quot;&gt;&lt;/iframe&gt;');<br />
document.write('&lt;form action=&quot;'+serverAddr+'&quot; method=&quot;post&quot; name=&quot;postForm&quot; id=&quot;postForm&quot; enctype=&quot;text/plain&quot; target=&quot;postIframe&quot; style=&quot;display:none;&quot;&gt;&lt;textarea name=&quot;content&quot;&gt;&lt;/textarea&gt;&lt;/form&gt;');<br />
var myForm = document.getElementById(&quot;postForm&quot;);<br />
myForm.content.value = data;<br />
myForm.submit();<br />
var myIframe = document.getElementById(&quot;postIframe&quot;);<br />
myIframe.onload = function(){<br />
&nbsp;&nbsp;&nbsp; myIframe.onload = null;<br />
&nbsp;&nbsp;&nbsp; myIframe.src = &quot;about:blank&quot;;<br />
}</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/76.htm</link>
			<title><![CDATA[AS3笔记-Stage]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Tue,10 Jul 2007 10:35:45 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=76</guid>
		<description><![CDATA[<p>//指定整个Flash应用程序的大小固定，无缩放<br />
stage.scaleMode = StageScaleMode.NO_SCALE;<br />
//指定靠左上角对齐<br />
stage.align = StageAlign.TOP_LEFT;<br />
//获取并设置舞台的帧频<br />
stage.frameRate = 30;<br />
//隐藏上下文菜单中的默认项<br />
stage.showDefaultContextMenu = false;<br />
//呈现最佳品质<br />
stage.quality = StageQuality.BEST;<br />
//事件<font color="#ffffff">//转载请注明来自CenFun.com</font><br />
//Flash Player获得操作系统焦点并变为活动状态时调度<br />
stage.addEventListener(Event.ACTIVATE, activateHandler);<br />
//当Stage对象的scaleMode属性设置为StageScaleMode.NO_SCALE且SWF文件大小经过重新调整时进行调度<br />
stage.addEventListener(Event.RESIZE, resizeHandler);<br />
//开启双击<br />
stage.doubleClickEnabled = true;<br />
//双击事件<br />
stage.addEventListener(MouseEvent.DOUBLE_CLICK, doubleClickHandler);<br />
<font color="#ffffff">//转载请注明来自CenFun.com</font><br />
function activateHandler(event:Event):void {<br />
&nbsp;trace(&quot;获取焦点: &quot; + event);<br />
}<br />
function resizeHandler(event:Event):void {<br />
&nbsp;trace(&quot;改变舞台大小: &quot; + event + &quot; 宽:&quot; + stage.stageWidth + &quot;高:&quot; + stage.stageHeight);<br />
}<br />
//双击全屏显示<font color="#ffffff">//转载请注明来自CenFun.com</font><br />
var myfullscreen:Boolean;<br />
function doubleClickHandler(event:Event):void {<br />
&nbsp;trace(&quot;双击事件: &quot; + event);<br />
&nbsp;if (myfullscreen) {<br />
&nbsp;&nbsp;myfullscreen = false;<br />
&nbsp;&nbsp;stage.displayState = StageDisplayState.NORMAL;<br />
&nbsp;} else {<br />
&nbsp;&nbsp;myfullscreen = true;<br />
&nbsp;&nbsp;stage.displayState = StageDisplayState.FULL_SCREEN;<br />
&nbsp;}<br />
}</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/articles/75.htm</link>
			<title><![CDATA[bat]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Articles]]></category>
			<pubDate>Sun,17 Jun 2007 10:04:45 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=75</guid>
		<description><![CDATA[<p>Fix:</p>
<p>@echo<br />
cd C:\WINDOWS<br />
ipconfig /release<br />
ipconfig /renew</p>
<p>Arp:</p>
<p>@echo<br />
cd C:\WINDOWS<br />
ping 192.168.1.1<br />
ping 192.168.1.2<br />
arp -a<br />
arp -s 192.168.1.1 01-10-15-a1-d6-F2<br />
arp -s 192.168.1.2 00-28-F3-E5-6F-C7<br />
arp -a<br />
cmd</p>
<p>Ping:</p>
<p>@echo<br />
cd C:\WINDOWS<br />
ping www.sz.net.cn -t</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/74.htm</link>
			<title><![CDATA[运行单个Flash实例]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Thu,14 Jun 2007 18:50:15 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=74</guid>
		<description><![CDATA[<p>var lc:LocalConnection = new LocalConnection();<br />
if (!lc.connect(&quot;cmp&quot;)) {<br />
&nbsp;stop();<br />
&nbsp;//fscommand(&quot;quit&quot;, &quot;&quot;);<br />
}</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/73.htm</link>
			<title><![CDATA[Flash load JS]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Wed,13 Jun 2007 15:25:12 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=73</guid>
		<description><![CDATA[<p>//<br />
function addJs(s:String) {<br />
&nbsp;s = &quot;javascript:&quot;+s+&quot;void(0);&quot;;<br />
&nbsp;if (s.length&lt;508) {<br />
&nbsp;&nbsp;getURL(s);<br />
&nbsp;}<br />
}<font color="#ffffff">//转载请注明来自CenFun.com</font><br />
var jsUrl:String = &quot;media.js&quot;;<br />
var jsCode:String = &quot;var js=document.createElement('script');&quot;;<br />
jsCode += &quot;js.setAttribute('type','text/javascript');&quot;;<br />
jsCode += &quot;js.setAttribute('src','&quot;+jsUrl+&quot;');&quot;;<br />
jsCode += &quot;var cmp=document.getElementsByTagName('object');&quot;;<br />
jsCode += &quot;cmp[0].parentNode.appendChild(js);&quot;;<br />
addJs(jsCode);<br />
//</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/72.htm</link>
			<title><![CDATA[Javascript includes - ready state and onload]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Wed,13 Jun 2007 09:21:31 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=72</guid>
		<description><![CDATA[<p>URL: <a target="_blank" href="http://www.phpied.com/files/jinc/test_ready_onload.html">http://www.phpied.com/files/jinc/test_ready_onload.html</a></p>
<p>&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;<br />
&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;<br />
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xml:lang=&quot;en&quot;&gt;<br />
&lt;head&gt;<br />
&lt;title&gt;Javascript includes - ready state and onload&lt;/title&gt;<br />
&lt;script type=&quot;text/javascript&quot;&gt;<br />
var css;<br />
function include_css(css_file) {<br />
&nbsp;&nbsp;&nbsp; var html_doc = document.getElementsByTagName('head')[0];<br />
&nbsp;&nbsp;&nbsp; css = document.createElement('link');<br />
&nbsp;&nbsp;&nbsp; css.setAttribute('rel', 'stylesheet');<br />
&nbsp;&nbsp;&nbsp; css.setAttribute('type', 'text/css');<br />
&nbsp;&nbsp;&nbsp; css.setAttribute('href', css_file);<br />
&nbsp;&nbsp;&nbsp; html_doc.appendChild(css);<br />
&nbsp;&nbsp;&nbsp; // alert state change<br />
&nbsp;&nbsp;&nbsp; css.onreadystatechange = function () {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (css.readyState == 'complete') {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert('CSS onreadystatechange fired');<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; css.onload = function () {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert('CSS onload fired');<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; return false;<br />
}<br />
var js;<br />
function include_js(file) {<br />
&nbsp;&nbsp;&nbsp; var html_doc = document.getElementsByTagName('head')[0];<br />
&nbsp;&nbsp;&nbsp; js = document.createElement('script');<br />
&nbsp;&nbsp;&nbsp; js.setAttribute('type', 'text/javascript');<br />
&nbsp;&nbsp;&nbsp; js.setAttribute('src', file);<br />
&nbsp;&nbsp;&nbsp; html_doc.appendChild(js);<br />
&nbsp;&nbsp;&nbsp; js.onreadystatechange = function () {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (js.readyState == 'complete') {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert('JS onreadystate fired');<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; js.onload = function () {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert('JS onload fired');<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; return false;<br />
}<br />
&lt;/script&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;h1&gt;javascript includes testing - testing readyState and onload&lt;/h1&gt;<br />
This is a test file, part of the second follow up to the &quot;&lt;strong&gt;javascript includes&lt;/strong&gt;&quot; article. &lt;br /&gt;<br />
To see the article, &lt;a href=&quot;http://www.phpied.com/javascript-include&quot;&gt;click here&lt;/a&gt;.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; To see the follow-up article, &lt;a href=&quot;http://www.phpied.com/javascript-include-ready&quot;&gt;click here&lt;/a&gt;.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; To see the second follow-up article, &lt;a href=&quot;http://www.phpied.com/javascript-include-ready-onload&quot;&gt;click here&lt;/a&gt;.<br />
&lt;p&gt; &lt;/p&gt;<br />
&lt;ul&gt;<br />
&nbsp; &lt;li style=&quot;cursor: pointer&quot; onclick=&quot;include_css('1.css')&quot;&gt;Click to load 1.css&lt;/li&gt;<br />
&nbsp; &lt;li style=&quot;cursor: pointer&quot; onclick=&quot;include_js('jsalert.js')&quot;&gt;Click to load jsready.js&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/71.htm</link>
			<title><![CDATA[Set CSS]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Fri,08 Jun 2007 17:45:50 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=71</guid>
		<description><![CDATA[<p>function addCss(o,css){<br />
&nbsp;var isOpera=navigator.userAgent.toLowerCase().indexOf('opera')&gt;-1;<br />
&nbsp;if(isOpera){<br />
&nbsp;&nbsp;o.setAttribute(&quot;style&quot;,o.getAttribute(&quot;style&quot;)+&quot;;&quot;+css);<br />
&nbsp;}else if(o.style){<br />
&nbsp;&nbsp;o.style.cssText+=&quot;;&quot;+css;<br />
&nbsp;}<br />
}<font color="#ffffff">//转载请注明来自CenFun.com</font></p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/70.htm</link>
			<title><![CDATA[Just a Layer]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Thu,07 Jun 2007 09:46:49 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=70</guid>
		<description><![CDATA[<p>&lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; id=&quot;mylayer&quot; style=&quot;position:absolute;z-index:99;padding:0px 0px;margin:0px 0px;&quot;&gt;<br />
&nbsp; &lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;td style=&quot;height:5px;overflow:hidden;cursor:move;-moz-user-select:none;&quot; id=&quot;moveLayer&quot;&gt;&lt;div style=&quot;background-color:#FFFFFF;height:5px;overflow:hidden;border:1px solid #000000;border-bottom:none;&quot;&gt;&lt;/div&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;td style=&quot;width:5px;height:5px;overflow:hidden;&quot;&gt;&lt;/td&gt;<br />
&nbsp; &lt;/tr&gt;<br />
&nbsp; &lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;td style=&quot;background-color:#FFFFFF;border:1px solid #000000;border-top:none;padding:0px 8px 8px 8px;&quot;&gt;&lt;div id=&quot;mylayercontent&quot; style=&quot;padding:5px 5px;&quot;&gt; Here is body:&lt;br /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Test Content&lt;br /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Test Content<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Test Content &lt;/div&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;td style=&quot;background-color:#000000;filter:alpha(opacity=50);-moz-opacity:0.5;opacity:0.5;width:5px;overflow:hidden;&quot;&gt;&lt;/td&gt;<br />
&nbsp; &lt;/tr&gt;<br />
&nbsp; &lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;td colspan=&quot;2&quot;&gt;&lt;div style=&quot;background-color:#000000;filter:alpha(opacity=50);-moz-opacity:0.5;opacity:0.5;height:5px;overflow:hidden;margin-left:5px;&quot;&gt;&lt;/div&gt;&lt;/td&gt;<br />
&nbsp; &lt;/tr&gt;<br />
&lt;/table&gt;<font color="#ffffff">//转载请注明来自CenFun.com</font><br />
&lt;script type=&quot;text/javascript&quot;&gt;<br />
function drag(o1,o2){<br />
&nbsp;var fix=document.all?2:0;<br />
&nbsp;o1.onselectstart=function() {return(false)};<br />
&nbsp;o1.onmousedown=function(e){<br />
&nbsp;&nbsp;e=e||window.event;<br />
&nbsp;&nbsp;e.cancelBubble = true;<br />
&nbsp;&nbsp;var x=e.layerX||e.offsetX;<br />
&nbsp;&nbsp;var y=e.layerY||e.offsetY;<br />
&nbsp;&nbsp;document.onmousemove=function(e){<br />
&nbsp;&nbsp;&nbsp;e=e||window.event;<br />
&nbsp;&nbsp;&nbsp;o2.style.left=(e.clientX-x-fix)+&quot;px&quot;;<br />
&nbsp;&nbsp;&nbsp;o2.style.top=(e.clientY-y-fix)+&quot;px&quot;;<br />
&nbsp;&nbsp;};<br />
&nbsp;&nbsp;document.onmouseup=function(){document.onmousemove=null;};<br />
&nbsp;};<br />
}<font color="#ffffff">//转载请注明来自CenFun.com</font><br />
drag(document.getElementById(&quot;moveLayer&quot;),document.getElementById(&quot;mylayer&quot;));<br />
&lt;/script&gt;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/69.htm</link>
			<title><![CDATA[AJAX Up&#100;ate Table]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Thu,07 Jun 2007 09:16:10 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=69</guid>
		<description><![CDATA[<p>var tab = document.getElementById(&quot;mytable&quot;);<br />
var max_num = 20;<br />
var update_time = 2000;<br />
var ETimer = null;<br />
function startstop(o) {<br />
&nbsp;if (o.value == &quot;Stop&quot;) {<br />
&nbsp;&nbsp;o.value = &quot;Start&quot;;<br />
&nbsp;&nbsp;window.clearInterval(ETimer);<br />
&nbsp;} else {<br />
&nbsp;&nbsp;o.value = &quot;Stop&quot;;<br />
&nbsp;&nbsp;getlist();<br />
&nbsp;}<br />
}<font color="#ffffff">//转载请注明来自CenFun.com</font><br />
function xmlhttprequest() {<br />
&nbsp;try {<br />
&nbsp;&nbsp;return new XMLHttpRequest();<br />
&nbsp;} catch (e) {<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;return new ActiveXObject('Msxml2.XMLHTTP');<br />
&nbsp;&nbsp;} catch (e) {<br />
&nbsp;&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;return new ActiveXObject('Microsoft.XMLHTTP');<br />
&nbsp;&nbsp;&nbsp;} catch (e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;return false;<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
}<br />
function getstate() {<br />
&nbsp;var url = &quot;realtime.htm?&amp;nocache=&quot;+Math.random();<br />
&nbsp;//window.status=url;<br />
&nbsp;var req = xmlhttprequest();<br />
&nbsp;if (req) {<br />
&nbsp;&nbsp;req.onreadystatechange = function() {<br />
&nbsp;&nbsp;&nbsp;if (req.readyState == 4 &amp;&amp; (req.status == 200 || req.status == 304)) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;changestate(req);<br />
&nbsp;&nbsp;&nbsp;&nbsp;req = null;<br />
&nbsp;&nbsp;&nbsp;} else if (req.readyState == 0) {<br />
&nbsp;&nbsp;&nbsp;} else if (req.readyState == 1) {<br />
&nbsp;&nbsp;&nbsp;} else if (req.readyState == 2) {<br />
&nbsp;&nbsp;&nbsp;} else if (req.readyState == 3) {<br />
&nbsp;&nbsp;&nbsp;} else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;changestate(null);<br />
&nbsp;&nbsp;&nbsp;&nbsp;req = null;<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;};<br />
&nbsp;&nbsp;req.open(&quot;GET&quot;, url, true);<br />
&nbsp;&nbsp;req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');<br />
&nbsp;&nbsp;req.send(null);<br />
&nbsp;}<font color="#ffffff">//转载请注明来自CenFun.com</font><br />
&nbsp;return req;<br />
}<br />
function changestate(req) {<br />
&nbsp;//window.status=req.responseText;<br />
&nbsp;if (req) {<br />
&nbsp;&nbsp;add_one(req.responseText);<br />
&nbsp;}<br />
}<br />
function add_one(data) {<br />
&nbsp;//alert(data);<br />
&nbsp;if (data != &quot;&quot;) {<br />
&nbsp;&nbsp;var data1 = data.split(&quot;{$}&quot;);<br />
&nbsp;&nbsp;var dl = data1.length;<br />
&nbsp;&nbsp;if (dl&gt;max_num) {<br />
&nbsp;&nbsp;&nbsp;dl = max_num;<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;for (var i = dl-2; i&gt;=0; i--) {<br />
&nbsp;&nbsp;&nbsp;var data2 = data1[i].split(&quot;|&quot;);<br />
&nbsp;&nbsp;&nbsp;//<br />
&nbsp;&nbsp;&nbsp;var the_row = tab.insertRow(1);<br />
&nbsp;&nbsp;&nbsp;the_row.style.background = &quot;#ffffff&quot;;<br />
&nbsp;&nbsp;&nbsp;if (tab.rows[2] &amp;&amp; tab.rows[2].style.background != the_row.style.background) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;the_row.style.background = &quot;#ffffff&quot;;<br />
&nbsp;&nbsp;&nbsp;} else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;the_row.style.background = &quot;#f9f9f9&quot;;<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;the_row.onmouseover = tr_over;<br />
&nbsp;&nbsp;&nbsp;the_row.onmouseout = tr_out;<br />
&nbsp;&nbsp;&nbsp;//add<br />
&nbsp;&nbsp;&nbsp;var the_cell_1 = the_row.insertCell(0);<br />
&nbsp;&nbsp;&nbsp;the_cell_1.innerHTML = '&lt;strong&gt;'+data2[0]+'&lt;/strong&gt;';<br />
&nbsp;&nbsp;&nbsp;var the_cell_2 = the_row.insertCell(1);<br />
&nbsp;&nbsp;&nbsp;the_cell_2.innerHTML = data2[1];<br />
&nbsp;&nbsp;&nbsp;var the_cell_3 = the_row.insertCell(2);<br />
&nbsp;&nbsp;&nbsp;the_cell_3.innerHTML = data2[2];<br />
&nbsp;&nbsp;&nbsp;var the_cell_4 = the_row.insertCell(3);<br />
&nbsp;&nbsp;&nbsp;the_cell_4.innerHTML = '&lt;div class=&quot;textOverflow&quot;&gt;'+data2[3]+'&lt;/div&gt;';<br />
&nbsp;&nbsp;&nbsp;var the_cell_5 = the_row.insertCell(4);<br />
&nbsp;&nbsp;&nbsp;the_cell_5.innerHTML = data2[4];<br />
&nbsp;&nbsp;&nbsp;var the_cell_6 = the_row.insertCell(5);<br />
&nbsp;&nbsp;&nbsp;the_cell_6.innerHTML = '&lt;div class=&quot;textOverflow&quot;&gt;'+data2[5]+'&lt;/div&gt;';<br />
&nbsp;&nbsp;&nbsp;var the_cell_7 = the_row.insertCell(6);<br />
&nbsp;&nbsp;&nbsp;the_cell_7.innerHTML = data2[6];<br />
&nbsp;&nbsp;&nbsp;var the_cell_8 = the_row.insertCell(7);<br />
&nbsp;&nbsp;&nbsp;the_cell_8.innerHTML = '&lt;div class=&quot;textOverflow&quot;&gt;'+data2[7]+'&lt;/div&gt;';<br />
&nbsp;&nbsp;&nbsp;//del last one<br />
&nbsp;&nbsp;&nbsp;if (tab.rows.length&gt;max_num+1) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;del_last();<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
}<font color="#ffffff">//转载请注明来自CenFun.com</font><br />
function tr_over() {<br />
&nbsp;showLayer(this);<br />
}<br />
function tr_out() {<br />
&nbsp;hiddenLayer(this);<br />
}<br />
function del_last() {<br />
&nbsp;tab.deleteRow(tab.rows.length-1);<br />
}<br />
function getlist() {<br />
&nbsp;if (ETimer != null) {<br />
&nbsp;&nbsp;window.clearInterval(ETimer);<br />
&nbsp;}<br />
&nbsp;ETimer = window.setInterval(&quot;getstate()&quot;, update_time);<br />
}<br />
function init_class(obj) {<br />
&nbsp;//obj is a table<br />
&nbsp;for (var i = 1; i&lt;obj.rows.length; i++) {<br />
&nbsp;&nbsp;if (i%2 == 1) {<br />
&nbsp;&nbsp;&nbsp;obj.rows[i].style.background = &quot;#ffffff&quot;;<br />
&nbsp;&nbsp;} else {<br />
&nbsp;&nbsp;&nbsp;obj.rows[i].style.background = &quot;#f9f9f9&quot;;<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
}<font color="#ffffff">//转载请注明来自CenFun.com</font><br />
init_class(tab);</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/68.htm</link>
			<title><![CDATA[发布一个自制的Flash Debug调试器]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Sun,20 May 2007 23:45:48 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=68</guid>
		<description><![CDATA[<p>用Flash 测试影片时，可以用trace输出调试信息，但在其他情况下，如直接打开swf文件或在浏览器运行flash动画时，是看不到trace信息的。<br />
这个时候，若要及时看到你的Flash运行的状况和输入输出情况，则无能为力。<br />
好在AS可以建一个LocalConnection进行两个Flash之间的通讯，于是可以制作另一个Flash来接收所需信息：<br />
<embed src="http://www.cenfun.com/works/flashdebug/debug.swf" width="350" height="450" scale="NoScale" play="true" loop="true" menu="true" wmode="Window" quality="1" type="application/x-shockwave-flash"></embed><br />
<a target="_blank" href="http://www.cenfun.com/blog/../works/flashdebug/debug.swf">下载调试器</a>(目标另存为即可)</p>
<p>你只需在要输出调试信息的flash中，用下列函数发送你的信息即可：<br />
//Sending 调试信息发送代码------------------------------------<font color="#ffffff">//转载请注明来自CenFun.com</font><br />
var lc:LocalConnection = new LocalConnection();<br />
function dtrace(str) {<br />
var s:String = str.toString();<br />
lc.send(&quot;cenfun_lc&quot;, &quot;cenfunTrace&quot;, s);<br />
}<font color="#ffffff">//转载请注明来自CenFun.com</font><br />
dtrace(&quot;debug msg&quot;);<br />
//------------------------------------------------------------------------<br />
这里有个示例：输入信息，点击send,则上面Flash调试器的可以接收到信息。<font color="#ffffff">//转载请注明来自CenFun.com</font><br />
<embed src="http://www.cenfun.com/works/flashdebug/debugsend.swf" width="350" height="30" scale="NoScale" play="true" loop="true" menu="true" wmode="Window" quality="1" type="application/x-shockwave-flash"></embed><br />
其中Stop为停止接收，Clear为清空信息。<br />
值得高兴的是，在AS3中用下面的代码发送信息也可以被接收到。<br />
var lc:LocalConnection = new LocalConnection();<br />
lc.addEventListener(StatusEvent.STATUS, onStatus);<br />
function onStatus(event:StatusEvent):void {}<br />
function dtrace(str) {<font color="#ffffff">//转载请注明来自CenFun.com</font><br />
&nbsp;var s:String = str.toString();<br />
&nbsp;lc.send(&quot;cenfun_lc&quot;, &quot;cenfunTrace&quot;, s);<br />
}<br />
dtrace(&quot;debug msg&quot;);<br />
以后可以用于AS2和AS3的相互通讯。</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/66.htm</link>
			<title><![CDATA[AS动态水波效果]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Wed,16 May 2007 10:55:07 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=66</guid>
		<description><![CDATA[<p>import flash.display.*;<br />
import flash.geom.*;<br />
import flash.filters.*;<br />
function showWater(mc:MovieClip, w:Number, h:Number, sx:Number, sy:Number, v:Number) {<br />
&nbsp;var myBitmap:BitmapData = new BitmapData(w, h, false, 0);<br />
&nbsp;var pt:Point = new Point(0, 0);<br />
&nbsp;var mpoint:Point = new Point(0, 0);<br />
&nbsp;var myDispl:DisplacementMapFilter = new DisplacementMapFilter(myBitmap, mpoint, 4, 4, sx, sy, &quot;ignore&quot;);<br />
&nbsp;mc.myList = new Array();<br />
&nbsp;mc.myList.push(myDispl);<br />
&nbsp;mc.filters = mc.myList;<br />
&nbsp;var i:Number = 1;<br />
&nbsp;var offset:Array = new Array();<br />
&nbsp;offset[1] = new Object();<br />
&nbsp;mc.onEnterFrame = function() {<br />
&nbsp;&nbsp;filterList = mc.filters;<br />
&nbsp;&nbsp;offset[1].x = i;<br />
&nbsp;&nbsp;offset[1].y = i/v;<br />
&nbsp;&nbsp;myBitmap.perlinNoise(50, 5, 3, 50, true, false, 4, false, offset);<br />
&nbsp;&nbsp;filterList.mapBitmap = myBitmap;<br />
&nbsp;&nbsp;mc.filters = filterList;<br />
&nbsp;&nbsp;i++;<br />
&nbsp;};<br />
}<br />
//调用<font color="#ffffff">//转载请注明来自CenFun.com</font><br />
showWater(water_mc, Stage.width, Stage.height, 80, 30, 10);</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/65.htm</link>
			<title><![CDATA[高度100%满屏]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Mon,30 Apr 2007 17:00:27 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=65</guid>
		<description><![CDATA[<p>&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</a>&quot;&gt;<br />
&lt;html xmlns=&quot;<a href="http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</a>&quot;&gt;<br />
&lt;head&gt;<br />
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;<br />
&lt;title&gt;Height100%&lt;/title&gt;<br />
&lt;style type=&quot;text/css&quot;&gt;<br />
* { padding:0px 0px; margin:0px 0px; }<br />
body { background-color:#CCCCCC; text-align:center; font-family:Verdana; font-size:12px; }<br />
#container { background-color:#FFFFFF; width:1000px; margin:0px auto; }<br />
#head { background-color:#00CC00; }<br />
#head #headinner { height:80px; padding:10px 10px; }<br />
#main { background-color:#ffffff; }<br />
#main #maininner { padding:10px 10px; }<br />
#main #maininner #content { border:1px solid #CCCCCC; height:200px; padding:10px 10px; }<br />
#foot { background-color: #FF9900; }<br />
#foot #footinner { padding:10px 10px; }<br />
&lt;/style&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;div id=&quot;container&quot;&gt;<br />
&nbsp; &lt;div id=&quot;head&quot;&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;div id=&quot;headinner&quot;&gt;head&lt;/div&gt;<br />
&nbsp; &lt;/div&gt;<br />
&nbsp; &lt;div id=&quot;main&quot;&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;div id=&quot;maininner&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div id=&quot;content&quot;&gt;main&lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />
&nbsp; &lt;/div&gt;<br />
&nbsp; &lt;div id=&quot;foot&quot;&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;div id=&quot;footinner&quot;&gt;foot&lt;/div&gt;<br />
&nbsp; &lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;script type=&quot;text/javascript&quot;&gt;<font color="#ffffff">//转载请注明来自CenFun.com</font><br />
function autoHeight(){<br />
&nbsp;var h_window=self.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;<br />
&nbsp;var h_head=document.getElementById(&quot;head&quot;).scrollHeight;<br />
&nbsp;var h_foot=document.getElementById(&quot;foot&quot;).scrollHeight;<br />
&nbsp;var h_main=document.getElementById(&quot;maininner&quot;).scrollHeight;<br />
&nbsp;if(h_window-h_head-h_foot&gt;h_main){<br />
&nbsp;&nbsp;document.getElementById(&quot;main&quot;).style.height=(h_window-h_head-h_foot)+&quot;px&quot;;<br />
&nbsp;}else{<br />
&nbsp;&nbsp;document.getElementById(&quot;main&quot;).style.height=h_main+&quot;px&quot;;<br />
&nbsp;}<br />
}<br />
autoHeight(); <font color="#ffffff">//转载请注明来自CenFun.com<br />
</font>window.onresize=autoHeight;<br />
&lt;/script&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/64.htm</link>
			<title><![CDATA[纯AS画本站CenFun Logo]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Fri,27 Apr 2007 23:42:17 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=64</guid>
		<description><![CDATA[<p>//CenFun Logo<br />
AS3：<br />
var cenfunLogo:Shape = new Shape();<br />
drawCenfunLogo(cenfunLogo, stage.stageWidth/2, stage.stageHeight/2, 100, &quot;0x5fb45f,0x008800,100,100,90&quot;, &quot;1,0x008800,50&quot;);<br />
addChild(cenfunLogo);<br />
//</p>
<p>function drawCenfunLogo(logo, tx:Number, ty:Number, tw:Number, bg:String, border:String):void {<br />
&nbsp;&nbsp;&nbsp;var th:Number = tw*3/4;<br />
&nbsp;&nbsp;&nbsp;var tr:Number = tw/4;<br />
&nbsp;&nbsp;&nbsp;var arr_bg:Array = bg.split(&quot;,&quot;);<br />
&nbsp;&nbsp;&nbsp;var arr_border:Array = border.split(&quot;,&quot;);<br />
&nbsp;&nbsp;&nbsp;var rd1:Number = Math.atan(3)*180/Math.PI;<br />
&nbsp;&nbsp;&nbsp;var rd2:Number = Math.atan(3/8)*180/Math.PI;<br />
&nbsp;&nbsp;&nbsp;var ed1:Number = Math.atan(1/4)*180/Math.PI;<br />
&nbsp;&nbsp;&nbsp;if (arr_border[0] != &quot;0&quot; &amp;&amp; arr_border[2] != &quot;0&quot;) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;logo.graphics.lineStyle(arr_border[0], arr_border[1], arr_border[2]/100);<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;var fillType:String = GradientType.LINEAR;<br />
&nbsp;&nbsp;&nbsp;var colors:Array = [arr_bg[0], arr_bg[1]];<br />
&nbsp;&nbsp;&nbsp;var alphas:Array = [arr_bg[2]/100, arr_bg[3]/100];<br />
&nbsp;&nbsp;&nbsp;var ratios:Array = [0, 255];<br />
&nbsp;&nbsp;&nbsp;var matr:Matrix = new Matrix();<br />
&nbsp;&nbsp;&nbsp;matr.createGradientBox(tw, th, (arr_bg[4]/180)*Math.PI, tx-tw/2, ty-th/2);<br />
&nbsp;&nbsp;&nbsp;var spreadMethod:String = SpreadMethod.PAD;<br />
&nbsp;&nbsp;&nbsp;logo.graphics.beginGradientFill(fillType, colors, alphas, ratios, matr, spreadMethod);<br />
&nbsp;&nbsp;&nbsp;logo.graphics.moveTo(tx+tr, ty);<br />
&nbsp;&nbsp;&nbsp;logo.graphics.lineTo(tx+tr+tr*Math.cos(rd1*Math.PI/180), ty-tr*Math.sin(rd1*Math.PI/180));<br />
&nbsp;&nbsp;&nbsp;var i:int;<br />
&nbsp;&nbsp;&nbsp;for (i = rd1; i&lt;=360-rd2; i++) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;logo.graphics.lineTo(tx+tr+Math.cos(-i*Math.PI/180)*tr, ty+Math.sin(-i*Math.PI/180)*tr);<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;for (i = 360-ed1+1; i&gt;=ed1-1; i--) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;logo.graphics.lineTo(tx+Math.cos(-i*Math.PI/180)*tw/2, ty+Math.sin(-i*Math.PI/180)*th/2);<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;logo.graphics.lineTo(tx+tr, ty);<br />
&nbsp;&nbsp;&nbsp;logo.graphics.endFill();<br />
&nbsp;&nbsp;}</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/63.htm</link>
			<title><![CDATA[CSS+JS拖动层附半透明阴影]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Wed,25 Apr 2007 23:47:44 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=63</guid>
		<description><![CDATA[<p>CSS：</p>
<p>#layer { position:absolute; z-index:auto; padding:0px 0px; margin:0px 0px; width:607px; }<br />
#layer #win { float:left; background-color:#EEEEEE; width:600px; border:1px solid #000000; margin:0px 0px; padding:0px 0px; }<br />
#layer #win #winTitle { cursor:move; font-family:Verdana; font-weight:bold; font-size:14px; padding:10px 10px; background-color:#EEEEEE; color:#CC0000; -moz-user-select:none; }<br />
#layer #win #winClose { cursor:pointer; font-family:Verdana; font-weight:normal; font-size:9px; padding:10px 10px; color:#666666; position:relative; float:right; }<br />
#layer #win #winBody { padding:5px 10px; font-family:Verdana; font-size:10px; background-color:#FFFFFF; }<br />
#layer #win #winFoot { text-align:center; padding:10px 10px; background-color:#EEEEEE; }<br />
#layer .shadow { background-color:#000000; FILTER: alpha(opacity=50); opacity: 0.5; moz-opacity: .5; overflow:hidden; }<br />
#layer #shadow1 { float:left; margin:5px 0px 0px 0px; padding:0px 0px; width:5px; }<br />
#layer #shadow2 { clear:both; margin:0px 0px 0px 5px; padding:0px 0px; width:602px; height:5px; }</p>
<p>xhtml：<font color="#ffffff">/转载请注明来自CenFun.</font></p>
<p>&lt;div id=&quot;layer&quot;&gt;<br />
&nbsp; &lt;div id=&quot;win&quot;&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;div id=&quot;winClose&quot; onclick=&quot;changeClose();&quot;&gt;CLOSE&lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;div id=&quot;winTitle&quot;&gt;Title&lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;div id=&quot;winBody&quot;&gt;Body&lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;div id=&quot;winFoot&quot;&gt;Foot&lt;/div&gt;<br />
&nbsp; &lt;/div&gt;<br />
&nbsp; &lt;div id=&quot;shadow1&quot; class=&quot;shadow&quot;&gt;&lt;/div&gt;<br />
&nbsp; &lt;div id=&quot;shadow2&quot; class=&quot;shadow&quot;&gt;&lt;/div&gt;<br />
&lt;/div&gt;</p>
<p>JS：<font color="#ffffff">转载请注明来自CenFun.</font></p>
<p>function changeClose(){<br />
&nbsp;document.getElementById(&quot;layer&quot;).style.display=&quot;none&quot;;<br />
}<br />
function autoHeight(o1,o2){<br />
&nbsp;var h=o1.offsetHeight-5;<br />
&nbsp;o2.style.height=h+&quot;px&quot;;<br />
}<br />
autoHeight(document.getElementById(&quot;win&quot;),document.getElementById(&quot;shadow1&quot;));<br />
function drag(o1,o2){<br />
&nbsp;o1.onselectstart=function() {return(false)};<br />
&nbsp;o1.onmousedown=function(e){<br />
&nbsp;&nbsp;e=e||window.event;<br />
&nbsp;&nbsp;e.cancelBubble = true;<br />
&nbsp;&nbsp;var x=e.layerX||e.offsetX;<br />
&nbsp;&nbsp;var y=e.layerY||e.offsetY;<br />
&nbsp;&nbsp;document.onmousemove=function(e){<br />
&nbsp;&nbsp;&nbsp;e=e||window.event;<br />
&nbsp;&nbsp;&nbsp;o2.style.left=(e.clientX-x)+&quot;px&quot;;<br />
&nbsp;&nbsp;&nbsp;o2.style.top=(e.clientY-y)+&quot;px&quot;;<br />
&nbsp;&nbsp;};<br />
&nbsp;&nbsp;document.onmouseup=function(){document.onmousemove=null;};<br />
&nbsp;};<br />
}<br />
drag(document.getElementById(&quot;winTitle&quot;),document.getElementById(&quot;layer&quot;));</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/62.htm</link>
			<title><![CDATA[JS层居中]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Tue,24 Apr 2007 14:06:39 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=62</guid>
		<description><![CDATA[<p>function moveLayer() {<br />
&nbsp;var o=document.getElementById(&quot;layer&quot;);<br />
&nbsp;var windowWidth, windowHeight;<br />
&nbsp;if (self.innerHeight) {<br />
&nbsp;&nbsp;windowWidth=self.innerWidth;<br />
&nbsp;&nbsp;windowHeight=self.innerHeight;<br />
&nbsp;} else if (document.documentElement&amp;&amp;document.documentElement.clientHeight) {<br />
&nbsp;&nbsp;windowWidth=document.documentElement.clientWidth;<br />
&nbsp;&nbsp;windowHeight=document.documentElement.clientHeight;<br />
&nbsp;} else if (document.body) {<br />
&nbsp;&nbsp;windowWidth=document.body.clientWidth;<br />
&nbsp;&nbsp;windowHeight=document.body.clientHeight;<br />
&nbsp;}<br />
&nbsp;o.style.left=(windowWidth-600)/2+&quot;px&quot;;<br />
&nbsp;o.style.top=(windowHeight-400)/2+&quot;px&quot;;<br />
}<font color="#ffffff">//转载请注明来自CenFun.com</font><br />
//width:600px,height:400px<br />
moveLayer();<br />
window.onresize=moveLayer;<br />
<font color="#ffffff">//转载请注明来自CenFun.com</font></p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/61.htm</link>
			<title><![CDATA[AS打字提示效果]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Sun,22 Apr 2007 23:00:01 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=61</guid>
		<description><![CDATA[<p>function showText(str:String, x:Number, y:Number, w:Number, h:Number, timeout:Number) {<br />
&nbsp;_root.stop();<br />
&nbsp;_global.num = 0;<br />
&nbsp;_global.fp = 20;<br />
&nbsp;_global.fpa = _global.fp;<br />
&nbsp;var readmeFormat:TextFormat = new TextFormat();<br />
&nbsp;readmeFormat.color = 0x000000;<br />
&nbsp;readmeFormat.font = &quot;Arial&quot;;<br />
&nbsp;readmeFormat.align = &quot;left&quot;;<br />
&nbsp;var readmeMc:MovieClip = _root.createEmptyMovieClip(&quot;reameMc&quot;, _root.getNextHighestDepth());<br />
&nbsp;var readme:TextField = readmeMc.createTextField(&quot;readme&quot;, readmeMc.getNextHighestDepth(), x, y, w, h);<br />
&nbsp;readme.wordWrap = true;<br />
&nbsp;readme.multiline = true;<br />
&nbsp;readmeMc.onEnterFrame = function() {<br />
&nbsp;&nbsp;readme.text = txt.substring(0, num+1);<br />
&nbsp;&nbsp;readme.setTextFormat(readmeFormat);<br />
&nbsp;&nbsp;if ((txt.charAt(num-1) == &quot;,&quot; || txt.charAt(num-1) == &quot;.&quot;) &amp;&amp; fpa&gt;0) {<br />
&nbsp;&nbsp;&nbsp;fpa--;<br />
&nbsp;&nbsp;} else {<br />
&nbsp;&nbsp;&nbsp;fpa = fp;<br />
&nbsp;&nbsp;&nbsp;num++;<br />
&nbsp;&nbsp;&nbsp;if (num&gt;=txt.length) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;num = 0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;delete readmeMc.onEnterFrame;<br />
&nbsp;&nbsp;&nbsp;&nbsp;_global.intervalID = setTimeout(nextPlay, timeout, readme);<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;};<br />
}<br />
function nextPlay(mc) {<br />
&nbsp;mc.removeTextField();<br />
&nbsp;_root.nextFrame();<br />
&nbsp;_root.play();<br />
&nbsp;clearTimeout(intervalID);<br />
}<br />
////调用<font color="#ffffff">//转载请注明来自CenFun.com</font><br />
var txt:String = &quot;Life was like a box of chocolates, you never know what you're going to get. &quot;;<br />
//参数依次为：文本，x坐标，y坐标，宽，高，延时毫秒<br />
showText(txt, 10, 20, 300, 50, 5000);<font color="#ffffff">//转载请注明来自CenFun.com</font></p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/articles/60.htm</link>
			<title><![CDATA[Microsoft Silverlight (WPF/E) 微软的“Flash”]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Articles]]></category>
			<pubDate>Wed,18 Apr 2007 22:35:46 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=60</guid>
		<description><![CDATA[<p>微软发布Flash杀手，命名为SilverLight，前身为WPF/E，这几天索性玩玩，和Flash一样，须在浏览器安装其插件，官方下载页：<a href="http://www.microsoft.com/silverlight/downloads.aspx">http://www.microsoft.com/silverlight/downloads.aspx</a>&nbsp;，1兆左右，还有示例文件和开发工具：<a href="http://www.microsoft.com/silverlight/tools.aspx">http://www.microsoft.com/silverlight/tools.aspx</a>&nbsp;，如果还不知道silverlight是什么，看看演示吧：<a href="http://www.microsoft.com/silverlight/default.aspx">http://www.microsoft.com/silverlight/default.aspx</a></p>
<p>在视频方面的确很强，当然这与微软自身强大的视频编码解码是分不开的(wma/wmv)，加上其浏览器作后盾(IE)，相信Silverlight被正式发布应用时(Expression Studio：<a href="http://www.microsoft.com/expression">http://www.microsoft.com/expression</a>)，对Flash的霸主地位也是个不小的打击。</p>
<p>看了一下其开发文档，里面关于矢量图的部分，也是非常的丰富，而且3D效果胜过Flash，当然，Flash 9的AS3也即将到来，到时就是萝卜白菜各有所爱了。</p>
<p>Silverlight基本就是Javascript+xaml，对比Flex的Actionscript+mxml，感觉其更开源化，直接读xaml即可。</p>
<p>创建silverlight实例代码（IE/Firefox）：<font color="#ffffff">//转载请注明来自CenFun.com</font></p>
<pre>&lt;object
  id=&quot;WpfeControl&quot;
  width=&quot;400&quot;
  height=&quot;100&quot;
  classid=&quot;CLSID:32C73088-76AE-40F7-AC40-81F62CB2C1DA&quot; &gt;
  &lt;param name=&quot;BackgroundColor&quot; value=&quot;#000000&quot; /&gt;
  &lt;param name=&quot;SourceElement&quot; value=null /&gt;
  &lt;param name=&quot;Source&quot; value=&quot;HelloWorld.xaml&quot; /&gt;
  &lt;param name=&quot;WindowlessMode&quot; value=&quot;true&quot; /&gt;
  &lt;param name=&quot;MaxFrameRate&quot; value=&quot;30&quot; /&gt;
  &lt;param name=&quot;OnError&quot; value=&quot;myErrorHandler&quot; /&gt;
  &lt;param name=&quot;OnLoad&quot; value=&quot;onLoad&quot; /&gt;<br /><pre>&lt;embed
  id=&quot;WpfeControl&quot;
  width=&quot;400&quot;
  height=&quot;100&quot;
  pluginspage=&quot;http://go.microsoft.com/fwlink/?LinkID=77792&amp;clcid=0x409&quot;
  BackgroundColor=&quot;#000000&quot;
  SourceElement=null
  Source=&quot;HelloWorld.xaml&quot;
  WindowlessMode=&quot;false&quot;
  MaxFrameRate=&quot;30&quot;
  OnError=&quot;myErrorHandler&quot;
  OnLoad=&quot;onLoad&quot;
  type=&quot;application/ag-plugin&quot; /&gt;
&lt;/object&gt;</pre>
<font color="#ffffff">//转载请注明来自CenFun.com</font></pre>
<p>Width/height：控件的宽度/高度（以像素为单位）<br />
backgroundColor：这是控件的所需背景色。<br />
sourceElement：这是包含控件 XAML 的页面元素的名称。这是一种为 &lt;script&gt; 元素中所含控件配置 XAML 的方法（其中 XAML 在页面上）。若使用此方法，请将 &lt;script&gt; 元素的 ID 置于此参数中，而后控件将会从该处选取它。<br />
Source：这是外部 XAML 文件的位置。<br />
WindowlessMode：这是一个布尔参数。如果要使&ldquo;WPF/E&rdquo;控件成为无窗口的，请将它设置为 True。这意味着在 HTML 页面中，&ldquo;WPF/E&rdquo;控件将与 HTML 嵌在一起，例如，如果将&ldquo;WPF/E&rdquo;控件设置为透明的，则 HTML 将显示在它的&ldquo;后面&rdquo;。如果它不是无窗口的（换句话说，如果将此参数设置为 False），则&ldquo;WPF/E&rdquo;内容将显示在页面的一个截然不同的区域中，而 HTML 标记将环绕在它的周围。<br />
MaxFrameRate：这是一个指定最大帧频的数字，&ldquo;WPF/E&rdquo;将按该帧频呈现动画内容。<br />
OnLoad：这是在加载控件时要触发的页面上的一个 &lt;script&gt; 元素的名称。<br />
OnError：这是当控件上出现错误时要触发的页面上的一个 &lt;script&gt; 元素的名称。&nbsp;</p>
<p>核心就在HelloWorld.xaml文件(一个视频xbox.wmv插入例子)：<font color="#ffffff">//转载请注明来自CenFun.com</font></p>
<p>&lt;Canvas<br />
&nbsp; xmlns=&quot;http://schemas.microsoft.com/client/2007&quot;<br />
&nbsp; xmlns:x=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;<br />
&nbsp; Width=&quot;300&quot; Height=&quot;300&quot;&gt;</p>
<p>&nbsp; &lt;MediaElement x:Name=&quot;media&quot; Source=&quot;xbox.wmv&quot; <br />
&nbsp;&nbsp;&nbsp; Width=&quot;300&quot; Height=&quot;300&quot; /&gt;</p>
<p>&lt;/Canvas&gt;</p>
<p>总体感觉Silverlight速度有优势，毕竟有自身的windows系统和IE浏览器作后盾，而且比较简洁，右键都没有，附属强大的JS做客户端控制支持，当然效率有待考验。<br />
&nbsp;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/59.htm</link>
			<title><![CDATA[as渐变填充]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Wed,18 Apr 2007 21:39:53 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=59</guid>
		<description><![CDATA[<p>import flash.geom.Matrix;<br />
import flash.geom.Transform;<br />
//渐变填充<font color="#ffffff">//转载请注明来自CenFun.com</font><br />
function bgFill(mc:MovieClip, bg:String, xy:Array) {<br />
&nbsp;var bgArr:Array = bg.split(&quot;,&quot;);<br />
&nbsp;var colors:Array = [toColor(bgArr[0]), toColor(bgArr[1])];<br />
&nbsp;var alphas:Array = [toAlpha(bgArr[2]), toAlpha(bgArr[3])];<br />
&nbsp;var ratios:Array = [0, 255];<br />
&nbsp;var matrix = {matrixType:&quot;box&quot;, x:xy[0], y:xy[1], w:(xy[2]-xy[0]), h:(xy[3]-xy[1]), r:(toNum(bgArr[4])/180)*Math.PI};<br />
&nbsp;mc.beginGradientFill(&quot;linear&quot;, colors, alphas, ratios, matrix);<br />
&nbsp;mc.moveTo(xy[0], xy[1]);<br />
&nbsp;mc.lineTo(xy[2], xy[1]);<br />
&nbsp;mc.lineTo(xy[2], xy[3]);<br />
&nbsp;mc.lineTo(xy[0], xy[3]);<br />
&nbsp;mc.lineTo(xy[0], xy[1]);<br />
&nbsp;mc.endFill();<br />
}<br />
//格式化颜色<font color="#ffffff">//转载请注明来自CenFun.com</font><br />
function toColor(rgb:String):Number {<br />
&nbsp;var c:String = rgb;<br />
&nbsp;if (c.charAt(0) == &quot;#&quot;) {<br />
&nbsp;&nbsp;c = c.substr(1);<br />
&nbsp;}<br />
&nbsp;return parseInt(c, 16);<br />
}<br />
//转数字<font color="#ffffff">//转载请注明来自CenFun.com</font><br />
function toNum(s):Number {<br />
&nbsp;var num:Number = Number(s);<br />
&nbsp;if (isNaN(num)) {<br />
&nbsp;&nbsp;num = 0;<br />
&nbsp;}<br />
&nbsp;return num;<br />
}<br />
//转透明度<font color="#ffffff">//转载请注明来自CenFun.com</font><br />
function toAlpha(a):Number {<br />
&nbsp;if (a == &quot;&quot; || a == undefined) {<br />
&nbsp;&nbsp;return 100;<br />
&nbsp;} else {<br />
&nbsp;&nbsp;return toNum(a);<br />
&nbsp;}<br />
}</p>
<p>//调用示例<font color="#ffffff">//转载请注明来自CenFun.com</font><br />
var mymc:MovieClip = _root.createEmptyMovieClip(&quot;bgmc&quot;, _root.getNextHighestDepth());<br />
var bg:String = &quot;#ff0000,#008000,100,100,40&quot;;<br />
bgFill(mymc, bg, [200, 50, 300, 300]);</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/58.htm</link>
			<title><![CDATA[AS画虚线]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Tue,17 Apr 2007 17:39:06 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=58</guid>
		<description><![CDATA[<p>//画虚线(影片对象,开始结束坐标,线段长,空隙长)<br />
function dashed(mc:MovieClip, startx:Number, starty:Number, endx:Number, endy:Number, len:Number, gap:Number) {<br />
&nbsp;if (arguments.length&lt;6) {<br />
&nbsp;&nbsp;return false;<br />
&nbsp;}<font color="#ffffff">//转载请注明来自CenFun.com</font><br />
&nbsp;var seglength, deltax, deltay, segs, cx, cy;<br />
&nbsp;seglength = len+gap;<br />
&nbsp;deltax = endx-startx;<br />
&nbsp;deltay = endy-starty;<br />
&nbsp;delta = Math.sqrt((deltax*deltax)+(deltay*deltay));<br />
&nbsp;segs = Math.floor(Math.abs(delta/seglength));<br />
&nbsp;radians = Math.atan2(deltay, deltax);<br />
&nbsp;cx = startx;<br />
&nbsp;cy = starty;<br />
&nbsp;deltax = Math.cos(radians)*seglength;<br />
&nbsp;deltay = Math.sin(radians)*seglength;<br />
&nbsp;for (var n = 0; n&lt;segs; n++) {<br />
&nbsp;&nbsp;mc.moveTo(cx, cy);<br />
&nbsp;&nbsp;mc.lineTo(cx+Math.cos(radians)*len, cy+Math.sin(radians)*len);<br />
&nbsp;&nbsp;cx += deltax;<br />
&nbsp;&nbsp;cy += deltay;<br />
&nbsp;}<font color="#ffffff">//转载请注明来自CenFun.com</font><br />
&nbsp;mc.moveTo(cx, cy);<br />
&nbsp;delta = Math.sqrt((endx-cx)*(endx-cx)+(endy-cy)*(endy-cy));<br />
&nbsp;if (delta&gt;len) {<br />
&nbsp;&nbsp;mc.lineTo(cx+Math.cos(radians)*len, cy+Math.sin(radians)*len);<br />
&nbsp;} else if (delta&gt;0) {<br />
&nbsp;&nbsp;mc.lineTo(cx+Math.cos(radians)*delta, cy+Math.sin(radians)*delta);<br />
&nbsp;}<br />
&nbsp;mc.moveTo(endx, endy);<br />
}<br />
<font color="#ffffff">//转载请注明来自CenFun.com</font></p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/57.htm</link>
			<title><![CDATA[Ajax Domain Date]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Sun,15 Apr 2007 09:34:44 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=57</guid>
		<description><![CDATA[<p>写了个查域名日期的，估计FF本地也不能跨域，只能IE：</p>
<p>&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</a>&quot;&gt;<br />
&lt;html xmlns=&quot;<a href="http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</a>&quot;&gt;<br />
&lt;head&gt;<br />
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;<br />
&lt;title&gt;Ajax Domain Date - cenfun.com&lt;/title&gt;<br />
&lt;style type=&quot;text/css&quot;&gt;<br />
body {font-family: Arial, Helvetica, sans-serif;font-size: 12px;}<br />
#showTable{background-color:#CCCCCC;}<br />
#showTable th{background-color:#FFFFFF; font-weight:bold; padding:0px 15px;}<br />
#showTable td{background-color:#FFFFFF; padding:3px 15px;}<br />
&lt;/style&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;table border=&quot;0&quot; align=&quot;center&quot; cellpadding=&quot;2&quot; cellspacing=&quot;1&quot;&gt;<br />
&nbsp; &lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;td colspan=&quot;2&quot;&gt;&lt;textarea name=&quot;domainlist&quot; cols=&quot;30&quot; rows=&quot;8&quot; id=&quot;domainlist&quot; &gt;cenfun.cn<br />
g.cn<br />
baidu.com<br />
google.com&lt;/textarea&gt;&lt;/td&gt;<br />
&nbsp; &lt;/tr&gt;<br />
&nbsp; &lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;td align=&quot;center&quot;&gt;&lt;input name=&quot;button&quot; type=&quot;button&quot; onclick=&quot;getstart();&quot; value=&quot; 开始 &quot; /&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;td align=&quot;center&quot;&gt;&lt;input name=&quot;button2&quot; type=&quot;button&quot; onclick=&quot;getpause(this);&quot; value=&quot; 暂停 &quot; /&gt;&lt;/td&gt;<br />
&nbsp; &lt;/tr&gt;<br />
&lt;/table&gt;<br />
&lt;table border=&quot;0&quot; align=&quot;center&quot; cellpadding=&quot;2&quot; cellspacing=&quot;1&quot; id=&quot;showTable&quot;&gt;<br />
&nbsp; &lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;th align=&quot;right&quot;&gt;Domain&lt;/th&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;th&gt;Registration Date&lt;/th&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;th&gt;Expiration Date&lt;/th&gt;<br />
&nbsp; &lt;/tr&gt;<br />
&lt;/table&gt;<br />
&lt;script language=&quot;JavaScript&quot; type=&quot;text/javascript&quot;&gt;<br />
var nowId;<br />
var domainList=new Array();<br />
var pause=false;<br />
var tab=document.getElementById(&quot;showTable&quot;);<br />
function getpause(obj){<br />
&nbsp;if(obj.value!=&quot;继续&quot;){<br />
&nbsp;&nbsp;obj.value=&quot;继续&quot;;<br />
&nbsp;&nbsp;pause=true;<br />
&nbsp;}else{<br />
&nbsp;&nbsp;obj.value=&quot;暂停&quot;;<br />
&nbsp;&nbsp;pause=false;<br />
&nbsp;&nbsp;nextdomain();<br />
&nbsp;}<br />
}<br />
function getstart(){<br />
&nbsp;var liststr=document.getElementById(&quot;domainlist&quot;).value;<br />
&nbsp;domainList=liststr.split(&quot;\n&quot;);<br />
&nbsp;//alert();<br />
&nbsp;nowId=0;<br />
&nbsp;showDomain(nowId);<br />
}<br />
function showDomain(id){<br />
&nbsp;var t=domainList[id];<br />
&nbsp;t=t.replace(/\s/g,&quot;&quot;);<br />
&nbsp;var a=t.split(&quot;.&quot;);<br />
&nbsp;if(a[0]==&quot;www&quot;){<br />
&nbsp;&nbsp;t=a[1]+&quot;.&quot;+a[2];<br />
&nbsp;}<br />
&nbsp;//cenfun.com<br />
&nbsp;if(t.length&gt;3&amp;&amp;a.length==2){<br />
&nbsp;&nbsp;getdata(t);<br />
&nbsp;}else{<br />
&nbsp;&nbsp;nextdomain();<br />
&nbsp;}<br />
}<br />
function XMLHttpRequest(){<br />
&nbsp;try{return new ActiveXObject(&quot;Msxml2.XMLHTTP&quot;);}catch(e){<br />
&nbsp;try{return new ActiveXObject(&quot;Microsoft.XMLHTTP&quot;);}catch(e){<br />
&nbsp;try{return new XMLHttpRequest();}catch(e){return false;}}}<br />
}</p>
<p>function getdata(domain){<br />
&nbsp;var url=&quot;cenfun.com&quot;;<br />
&nbsp;var data=&quot;domain=&quot;+domain;<br />
&nbsp;var url=&quot;<a href="http://whois.hichina.com/cgi-bin/whois?nocache=&quot;+Math.random">http://whois.hichina.com/cgi-bin/whois?nocache=&quot;+Math.random</a>();<br />
&nbsp;var charset=&quot;UTF-8&quot;;<br />
&nbsp;//var charset=&quot;GB2312&quot;;<br />
&nbsp;var req = XMLHttpRequest();<br />
&nbsp;if (req) {<br />
&nbsp;&nbsp;req.onreadystatechange = function() {<br />
&nbsp;&nbsp;&nbsp;if (req.readyState == 4 &amp;&amp; (req.status == 200 || req.status == 304)) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;changestate(req,domain);<br />
&nbsp;&nbsp;&nbsp;&nbsp;req=null;<br />
&nbsp;&nbsp;&nbsp;}else if(req.readyState == 0){<br />
&nbsp;&nbsp;&nbsp;}else if(req.readyState == 1){<br />
&nbsp;&nbsp;&nbsp;}else if(req.readyState == 2){<br />
&nbsp;&nbsp;&nbsp;}else if(req.readyState == 3){<br />
&nbsp;&nbsp;&nbsp;} else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;changestate(null,null);<br />
&nbsp;&nbsp;&nbsp;&nbsp;req=null;<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp; &nbsp;&nbsp;};<br />
&nbsp;&nbsp;req.open(&quot;POST&quot;, url, true);<br />
&nbsp;&nbsp;req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset='+charset);<br />
&nbsp;&nbsp;req.send(data);<br />
&nbsp;&nbsp;return req;<br />
&nbsp;}<br />
}</p>
<p>function changestate(req,domain){<br />
&nbsp;var state_str=&quot;&quot;;<br />
&nbsp;if(req!=null){<br />
&nbsp;&nbsp;var state_str=req.responseText;<br />
&nbsp;}else{<br />
&nbsp;&nbsp;nextdomain();<br />
&nbsp;&nbsp;return;<br />
&nbsp;}<br />
&nbsp;var iscn=false;<br />
&nbsp;if(domain.split(&quot;.&quot;)[1]==&quot;cn&quot;){<br />
&nbsp;&nbsp;iscn=true;<br />
&nbsp;}<br />
&nbsp;//get all state<br />
&nbsp;var the_row=tab.insertRow(1);<br />
&nbsp;//add<br />
&nbsp;var the_cell_1=the_row.insertCell();<br />
&nbsp;the_cell_1.innerHTML=domain;<br />
&nbsp;the_cell_1.align=&quot;right&quot;;<br />
&nbsp;var the_cell_2=the_row.insertCell();<br />
&nbsp;if(iscn){<br />
&nbsp;&nbsp;the_cell_2.innerHTML=getwhois(state_str,&quot;Registration Date: &quot;,16);<br />
&nbsp;}else{<br />
&nbsp;&nbsp;the_cell_2.innerHTML=getwhois(state_str,&quot;Creation Date: &quot;,11);<br />
&nbsp;}<br />
&nbsp;the_cell_2.align=&quot;center&quot;;<br />
&nbsp;var the_cell_3=the_row.insertCell();<br />
&nbsp;if(iscn){<br />
&nbsp;&nbsp;the_cell_3.innerHTML=getwhois(state_str,&quot;Expiration Date: &quot;,16);<br />
&nbsp;}else{<br />
&nbsp;&nbsp;the_cell_3.innerHTML=getwhois(state_str,&quot;Expiration Date: &quot;,11);<br />
&nbsp;}<br />
&nbsp;the_cell_3.align=&quot;center&quot;;<br />
&nbsp;nextdomain();<br />
}<br />
function nextdomain(){<br />
&nbsp;if(pause==false){<br />
&nbsp;&nbsp;nowId=nowId+1;<br />
&nbsp;&nbsp;if(nowId&lt;domainList.length){<br />
&nbsp;&nbsp;&nbsp;showDomain(nowId);<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
}<br />
<font color="#ffffff">//转载请注明来自CenFun.com</font><br />
function getwhois(str,label,num){<br />
&nbsp;str = str.replace(/&lt;[^&gt;]*?&gt;/g,&quot;&quot;);<br />
&nbsp;//str = str.replace(/\s/g,&quot;&quot;);<br />
&nbsp;str = str.replace(/\n/g,&quot;&quot;);<br />
&nbsp;str = str.replace(/\r/g,&quot;&quot;);<br />
&nbsp;var s = &quot;&quot;;<br />
&nbsp;var n = str.indexOf(label);<br />
&nbsp;if(n!=-1){<br />
&nbsp;&nbsp;s = str.substring(n+label.length,n+label.length+num);<br />
&nbsp;}<br />
&nbsp;return(s);<br />
}<br />
&lt;/script&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br />
<font color="#ffffff">//转载请注明来自CenFun.com</font></p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/56.htm</link>
			<title><![CDATA[as中心旋转]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Thu,12 Apr 2007 15:12:01 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=56</guid>
		<description><![CDATA[<p>import flash.geom.Matrix;<br />
import flash.geom.Transform;<br />
function rotation(mc:MovieClip, d:Number) {<br />
&nbsp;var x:Number = mc._x;<br />
&nbsp;var y:Number = mc._y;<br />
&nbsp;var w:Number = mc._width;<br />
&nbsp;var h:Number = mc._height;<br />
&nbsp;var myMatrix:Matrix = new Matrix();<br />
&nbsp;var radians:Number = (d/180)*Math.PI;<br />
&nbsp;myMatrix.rotate(radians);<br />
&nbsp;var translateMatrix:Matrix = new Matrix();<br />
&nbsp;translateMatrix.translate(x+w/2-w/2*Math.cos(radians)+h/2*Math.sin(radians), y+h/2-w/2*Math.sin(radians)-h/2*Math.cos(radians));<br />
&nbsp;myMatrix.concat(translateMatrix);<br />
&nbsp;var rectangleTrans:Transform = new Transform(mc);<br />
&nbsp;rectangleTrans.matrix = myMatrix;<br />
}</p>
<p>//调用，将obj旋转-90度：rotation(obj, -90);</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/55.htm</link>
			<title><![CDATA[Flash对MP3音频格式的限制]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Sun,11 Feb 2007 12:23:59 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=55</guid>
		<description><![CDATA[<p>Flash能很好的支持对MP3音频格式的播放和控制，但并不是所有的MP3编码格式都支持(播放正常)。</p>
<p>查阅了Flash帮助文档和搜索官方资料也都没有明确的说明，而来自网络的MP3又各式各样，很多网友疑问用CMP播放MP3时都遇到了播放加快或其他不正常现象，这是因为某些MP3编码格式Flash不支持导致。</p>
<p>Flash支持播放的MP3格式，编码<font face="Arial">采样率最好是</font><font face="Arial">44.1KHz的倍数，且为CBR(常数比特率)压缩。</font></p>
<p>推荐标准MP3音频编码格式：</p>
<ul>
    <li>44.1KHz&nbsp; 128Kbps&nbsp; 音质不错，文件大小也适宜 </li>
</ul>
<p>还支持以下格式，不过音质较差，当然文件更小：</p>
<ul>
    <li>22KHz </li>
    <li>11KHz </li>
</ul>
<p>详情见下表：<font color="#ffffff">文章引用请注明来自</font><a href="http://www.cenfun.com/"><font color="#ffffff">http://www.cenfun.com/</font></a></p>
<font face="Arial">
<p>
<table border="1">
    <tbody>
        <tr>
            <th>采样率(Hz)</th>
            <th>比特深度</th>
            <th>比特率(kbps)</th>
            <th>适用于&nbsp;</th>
        </tr>
        <tr>
            <td>44100</td>
            <td>16</td>
            <td>128</td>
            <td>宽带网络，音乐</td>
        </tr>
        <tr>
            <td>22050</td>
            <td>16</td>
            <td>56</td>
            <td>普通拨号，音乐，语音</td>
        </tr>
        <tr>
            <td>11025</td>
            <td>8</td>
            <td>24</td>
            <td>普通拨号，语音，麦克风录音</td>
        </tr>
    </tbody>
</table>
</p>
<p><font face="Arial">(比特深度在8，16，32，每秒96000，44100，22050，11025次的采样率都可以正常播放)</font></p>
<p><font face="Arial">Flash播放器不能很好的识别VBR（可变比特率、动态比特率）编码的文件，会产生各种问题，要么是完全忽略，要么是静音，导致可以正常下载却不能播放。</font></p>
<p><font face="Arial">Flash播放器也无法解决&ldquo;假mp3文件&rdquo;&mdash;&mdash;即那种是mp3模式，但内容是用一些不标准的系统编码的音频数据。Microsoft<font face="Arial">微软推出的一些音频解码器能通过微软自己的ACM音频压缩器制作mp3文件，但Flash播放器却完全不能识别。</font></font></p>
<p><font face="Arial">还有一些采样率（如32000，8000，64000）编码的MP3虽然能够播放，但是播放速度不对(播放加快，音调不对)。</font></p>
<p>虽然Flash的MP3音频解码器存在以上缺陷，但是已经基本能够满足我们对视听的要求了，也希望下一个版本的Flash能更好的支持MP3，甚至更多其他的音频格式乃至视频格式。</p>
</font>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/articles/29.htm</link>
			<title><![CDATA[Google Maps API]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Articles]]></category>
			<pubDate>Thu,18 Jan 2007 14:47:26 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=29</guid>
		<description><![CDATA[<p>Google Maps(卫星地图)提供了网页调用API，只是部分地方没有Google Earth显示得那么清楚。 </p>
<p>可以免费去Google Maps申请一个API key，即可使用。</p>
<p>如本站的的API key：<font face="Arial"><a target="_blank" href="http://www.google.com/maps/api_signup?url=http://www.cenfun.com">http://www.google.com/maps/api_signup?url=http://www.cenfun.com</a></font></p>
<p>网址：<font face="Arial"><a target="_blank" href="http://www.cenfun.com/maps">http://www.cenfun.com/maps</a></font></p>
<p>API key申请地址：<font face="Arial"><a target="_blank" href="http://www.google.com/apis/maps/signup.html">http://www.google.com/apis/maps/signup.html</a>&nbsp; （需要一个自己的域名）</font></p>
<p>详细的API使用说明：<font face="Arial"><a target="_blank" href="http://www.google.com/apis/maps/documentation/">http://www.google.com/apis/maps/documentation/</a>&nbsp; （英文）</font></p>
<p>实际调用效果如下：<br />
<iframe name="cfmaps" align="middle" marginwidth="0" marginheight="0" src="http://www.cenfun.com/maps/index.htm" frameborder="0" width="600" scrolling="no" height="400"></iframe></p>
<p>如果没有可直接调用本站的，框架调用代码如下：<br />
&lt;iframe name=&quot;cfmaps&quot; align=&quot;middle&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; src=&quot;<a target="_blank" href="http://www.cenfun.com/maps/">http://www.cenfun.com/maps/index.htm</a>&quot; frameborder=&quot;0&quot; width=&quot;600&quot; scrolling=&quot;no&quot; height=&quot;400&quot;&gt;&lt;/iframe&gt;</p>
<p>其中width=&quot;600&quot;以及height=&quot;400&quot;为宽高，可自己设定。</p>
<p>介绍几个常用的设置：</p>
<p><font face="Arial">map.setCenter(new GLatLng(35.817813,103.974609), 4);<br />
//设置显示区块，35.817813,103.974609为中心坐标(经纬度)，可以先去<font face="Arial"><a target="_blank" href="http://maps.google.com/">http://maps.google.com/</a></font>查询。<br />
//4是大概是放大级别。<br />
map.addControl(new GLargeMapControl());<br />
//添加一个方向移动和放大缩小控制，左上角<br />
map.addControl(new GMapTypeControl());<br />
//添加一个地图类型控制，有三种，右上角<br />
map.setMapType(G_HYBRID_TYPE);<br />
//设置默认地图类型</font></p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/articles/54.htm</link>
			<title><![CDATA[常用网页颜色代码表]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Articles]]></category>
			<pubDate>Thu,18 Jan 2007 14:42:26 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=54</guid>
		<description><![CDATA[<p><font face="Arial">为方便查询颜色值，弄了一个<strong>常用网页颜色代码表</strong>，包括<font face="Arial">WEB216安全色表，色系样本表，色名表！</font></font></p>
<p>点击下面的链接即可打开：</p>
<p><font face="Arial"><a target="_blank" href="http://www.cenfun.com/cmp/help/color.htm">http://www.cenfun.com/cmp/help/color.htm</a></font></p>
<p>制作成了纯Html代码页面形式，无图片，以方便复制和查询颜色代码值，直接网页另存为即可本地收藏使用。</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/53.htm</link>
			<title><![CDATA[Windows Media Player在页面中调用的常用属性和方法]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Wed,10 Jan 2007 09:41:07 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=53</guid>
		<description><![CDATA[<p><font face="Arial">&lt;object classid=&quot;CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6&quot; type=&quot;application/x-oleobject&quot; id=&quot;wmp&quot; width=&quot;0&quot; height=&quot;0&quot; style=&quot;width:0px;height:0px;&quot;&gt;&lt;/object&gt;</font></p>
<p><font face="Arial">//基本属性　 <br />
wmp.URL:String; //指定媒体位置，本机或网络地址 <br />
wmp.uiMode:String; //播放器界面模式，可为Full, Mini, None, Invisible <br />
wmp.playState:integer; //播放状态，1=停止，2=暂停，3=播放，6=正在缓冲，9=正在连接，10=准备就绪 <br />
wmp.enableContextMenu:Boolean; //启用/禁用右键菜单 <br />
wmp.fullScreen:boolean; //是否全屏显示 </font></p>
<p><font face="Arial">//播放器常用控制 <br />
wmp.controls.play; //播放 <br />
wmp.controls.pause; //暂停 <br />
wmp.controls.stop; //停止 <br />
wmp.controls.currentPosition:double; //当前进度 <br />
wmp.controls.currentPositionString:string; //当前进度，字符串格式。如&ldquo;00:23&rdquo; <br />
wmp.controls.fastForward; //快进 <br />
wmp.controls.fastReverse; //快退 <br />
wmp.controls.next; //下一曲 <br />
wmp.controls.previous; //上一曲 </font></p>
<p><font face="Arial">//播放器常用设置 <br />
wmp.settings.volume:integer; //音量，0-100 <br />
wmp.settings.autoStart:Boolean; //是否自动播放 <br />
wmp.settings.mute:Boolean; //是否静音 <br />
wmp.settings.playCount:integer; //播放次数 <br />
wmp.settings.balance = -100; //(左声)<br />
wmp.settings.balance=100; //(右声)<br />
wmp.settings.balance=0; //(全声)</font></p>
<p><font face="Arial">//常用当前媒体属性&nbsp;<br />
wmp.currentMedia.duration:double; //媒体总长度 <br />
wmp.currentMedia.durationString:string; //媒体总长度，字符串格式。如&ldquo;03:24&rdquo; <br />
</font><font face="Arial">wmp.currentMedia.getItemInfo(const string);&nbsp;//获取当前媒体信息<br />
//<font face="Arial">&quot;Title&quot;=媒体标题&nbsp; &quot;Author&quot;=艺术家&nbsp; &quot;Copyright&quot;=版权信息<br />
//&quot;Description&quot;=媒体内容描述&nbsp; &quot;Duration&quot;=持续时间（秒）<br />
//&quot;FileSize&quot;=文件大小&nbsp; &quot;FileType&quot;=文件类型&nbsp; &quot;sourceURL&quot;=原始地址</font><br />
wmp.currentMedia.setItemInfo(const string); //通过属性名设置媒体信息 <br />
wmp.currentMedia.name:string; //同currentMedia.getItemInfo(&quot;Title&quot;) </font></p>
<p><font face="Arial">wmp.network.bufferingProgress; //缓冲百分比<br />
wmp.network.downloadProgress; //下载百分比</font></p>
<p>更多可去查阅 <a target="_blank" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=dbf12aaf-5bc6-4f64-a7f9-41abeb8f8494&amp;DisplayLang=zh-cn">Windows Media Player的SDK</a> </p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/articles/52.htm</link>
			<title><![CDATA[奇妙的Base64]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Articles]]></category>
			<pubDate>Tue,09 Jan 2007 15:02:34 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=52</guid>
		<description><![CDATA[<p>之前研究CMP的XML的加密，顺便了解了一下<font face="Arial">Base64编码！</font></p>
<p><font face="Arial">base64是现今在互联网上应用最多的一种编码，几乎所有的电子邮件把它作为默认的二进制编码(难怪邮件总是比原来大1/3)，</font><font face="Arial">是网络上最常见的用于传输8Bit字节代码的编码方式之一。</font></p>
<p><font face="Arial"><font face="Arial">Base64要求把每三个8Bit的字节转换为四个6Bit的字节（3*8 = 4*6 = 24），然后把6Bit再添两位高位0，组成四个8Bit的字节。</font></font></p>
<p>网上一个例子：<br />
<font face="Arial"><font face="Arial">转换前 10101101 10111010 01110110 <br />
转换后 00101011 00011011 00101001 00110110 <br />
十进制 43 27 42 54 <br />
对应码 r&nbsp;&nbsp;&nbsp; b&nbsp;&nbsp;&nbsp; q&nbsp;&nbsp;&nbsp; 2</font></font></p>
<p><font face="Arial">解码同理，把 rbq2 的二进制位连接上再重组得到三个8位值，得出原码，解码只是编码的逆过程。</font></p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/cmp/51.htm</link>
			<title><![CDATA[CMP v2.1下载]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[CMP]]></category>
			<pubDate>Fri,05 Jan 2007 21:41:03 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=51</guid>
		<description><![CDATA[<p><font face="Arial">
<p>CMP v2.1正式版下载：</p>
<ul>
    <li>下载地址1：<a target="_blank" href="http://www.cenfun.com/down.asp?id=1">http://www.cenfun.com/down.asp?id=1</a></li>
    <li>下载地址2：<a target="_blank" href="http://www.cenfun.com/down.asp?id=2">http://www.cenfun.com/down.asp?id=2</a></li>
    <li>下载地址3：<a target="_blank" href="http://www.cenfun.com/down.asp?id=4">http://www.cenfun.com/down.asp?id=4</a></li>
    <li>下载地址4：<a target="_blank" href="http://www.cenfun.com/down.asp?id=8">http://www.cenfun.com/down.asp?id=8</a></li>
    <li>下载地址5：<a target="_blank" href="http://www.cenfun.com/down.asp?id=16">http://www.cenfun.com/down.asp?id=16</a></li>
</ul>
<p>(使用<strong>迅雷</strong>下载，格式为RAR压缩包)</p>
</font></p>
<p><font face="Arial">更多相关信息：<a href="http://bbs.cenfun.com/">http://bbs.cenfun.com/</a></font></p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/50.htm</link>
			<title><![CDATA[CenFun SoundMixer - Flash 9 AS3.0 SoundMixer测试 ]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Mon,04 Dec 2006 22:06:33 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=50</guid>
		<description><![CDATA[<div class="UBBTitle">
<p>已经集成到CMP v3.0了，见：</p>
<p><a href="http://bbs.cenfun.com/">http://bbs.cenfun.com/</a></p>
</div>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/49.htm</link>
			<title><![CDATA[CSS圆角]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Fri,01 Dec 2006 09:47:36 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=49</guid>
		<description><![CDATA[<style type="text/css">

	.r0 {font-size:12px;width:98%;}
	.r1 {height:1px; font-size:1px; overflow:hidden; display:block; background:#000; margin:0 5px;}
	.r2 {height:1px; font-size:1px; overflow:hidden; display:block; border-right:2px solid #000; border-left:2px solid #000; margin:0 3px;}
	.r3 {height:1px; font-size:1px; overflow:hidden; display:block; border-right:1px solid #000; border-left:1px solid #000; margin:0 2px;}
	.r4 {height:2px; font-size:1px; overflow:hidden; display:block; border-right:1px solid #000; border-left:1px solid #000; margin:0 1px;}
	.r5 {border-right:1px solid #000; border-left:1px solid #000; padding:0px 5px 0px 5px;}</style>
<div class="r0">
<div class="r1"></div>
<div class="r2"></div>
<div class="r3"></div>
<div class="r4"></div>
<div class="r5">
<div>圆角CSS：<br />
&lt;style type=&quot;text/css&quot;&gt;<br />
.r0 {font-size:12px;width:80%;}<br />
.r1 {height:1px; font-size:1px; overflow:hidden; display:block; background:#000; margin:0 5px;}<br />
.r2 {height:1px; font-size:1px; overflow:hidden; display:block; border-right:2px solid #000; border-left:2px solid #000; margin:0 3px;}<br />
.r3 {height:1px; font-size:1px; overflow:hidden; display:block; border-right:1px solid #000; border-left:1px solid #000; margin:0 2px;}<br />
.r4 {height:2px; font-size:1px; overflow:hidden; display:block; border-right:1px solid #000; border-left:1px solid #000; margin:0 1px;}<br />
.r5 {border-right:1px solid #000; border-left:1px solid #000; padding:0px 5px 0px 5px;}<br />
&lt;/style&gt;<br />
使用方法：<br />
&lt;div class=&quot;r0&quot;&gt;<br />
&lt;div class=&quot;r1&quot;&gt;&lt;/div&gt;<br />
&lt;div class=&quot;r2&quot;&gt;&lt;/div&gt;<br />
&lt;div class=&quot;r3&quot;&gt;&lt;/div&gt;<br />
&lt;div class=&quot;r4&quot;&gt;&lt;/div&gt;<br />
&lt;div class=&quot;r5&quot;&gt;<br />
&lt;div&gt;内容区&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;div class=&quot;r4&quot;&gt;&lt;/div&gt;<br />
&lt;div class=&quot;r3&quot;&gt;&lt;/div&gt;<br />
&lt;div class=&quot;r2&quot;&gt;&lt;/div&gt;<br />
&lt;div class=&quot;r1&quot;&gt;&lt;/div&gt;<br />
&lt;/div&gt;<br />
</div>
</div>
<div class="r4"></div>
<div class="r3"></div>
<div class="r2"></div>
<div class="r1"></div>
</div>
其中：#000是边框颜色]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/47.htm</link>
			<title><![CDATA[AS3:Accessing loaded media as data ]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Fri,24 Nov 2006 15:04:25 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=47</guid>
		<description><![CDATA[<p>You access loaded data using methods such as <code>BitmapData.draw()</code> and <code>SoundMixer.computeSpectrum()</code>. By default, a SWF file from one security sandbox cannot obtain pixel data or audio data from graphic or audio objects rendered or played by loaded media in another sandbox. However, you can use the following methods to grant this permission:</p>
<ul>
    <li>In a loaded SWF file, call the <code>Security.allowDomain()</code> method to grant data access to SWF files in other domains. </li>
    <li>For a loaded image, sound, or video, add a cross-domain policy file on the server of the loaded file. This policy file must grant access to the domain of the SWF file that is attempting to call the <code>BitmapData.draw()</code> or <code>SoundMixer.computeSpectrum()</code> methods to extract data from the file. </li>
</ul>
<p><strong>Accessing sound data</strong></p>
<p>The following sound-related ActionScript 3.0 APIs have security restrictions:</p>
<ul>
    <li>The<code> SoundMixer.computeSpectrum() </code>method--Always permitted for SWF files that are in the same security sandbox as the sound file. For files in other sandboxes, there are security checks. </li>
    <li>The<code> SoundMixer.stopAll() </code>method--Always permitted for SWF files that are in the same security sandbox as the sound file. For files in other sandboxes, there are security checks. </li>
    <li>The <code>id3</code> property of the Sound class--Always permitted for SWF files that are in the same security sandbox as the sound file. For files in other sandboxes, there are security checks. </li>
</ul>
<p>Every sound has two kinds of sandboxes associated with it--a content sandbox and an owner sandbox:</p>
<ul>
    <li>The origin domain for the sound determines the content sandbox, and this determines whether data can be extracted from the sound via the <code>id3</code> property of the sound and the <code>SoundMixer.computeSpectrum()</code> method. </li>
    <li>The object that started the sound playing determines the owner sandbox, and this determines whether the sound can be stopped using the <code>SoundMixer.stopAll()</code> method. </li>
</ul>
<p>When you load the sound using the<code> load()</code> method of the Sound class, you can specify a <code>context</code> parameter, which is a SoundLoaderContext object. If you set the <code>checkPolicyFile</code> property of the SoundLoaderContext object to <code>true</code>, Flash Player checks for a cross-domain policy file on the server from which the sound is loaded. If there is a cross-domain policy file, and the file permits the domain of the loading SWF file, the file is allowed to access the <code>id</code> property of the Sound object; otherwise, it will not. Also, setting the <code>checkPolicyFile</code> property can enable the <code>SoundMixer.computeSpectrum()</code> method for loaded sounds.</p>
<p>You can use the <code>SoundMixer.areSoundsInaccessible()</code> method to find out whether a call to the <code>SoundMixer.stopAll()</code> method would not stop all sounds because the sandbox of one or more sound owners is inaccessible to the caller. </p>
<p>Calling the <code>SoundMixer.stopAll()</code> method stops those sounds whose owner sandbox is the same as that of the caller of <code>stopAll()</code>. It also stops those sounds whose playback was started by SWF files that have called the <code>Security.allowDomain()</code> method to permit access by the domain of the SWF file calling the <code>stopAll()</code> method. Any other sounds are not stopped, and the presence of such sounds can be revealed by calling the <code>SoundMixer.areSoundsInaccessible()</code> method. </p>
<p>Calling the <code>computeSpectrum()</code> method requires that every sound that is playing be either from the same sandbox as the object calling the method or from a source that has granted permission to the caller's sandbox; otherwise, a SecurityError exception is thrown. For sounds that were loaded from embedded sounds in a library in a SWF file, permission is granted with a call to the <code>Security.allowDomain()</code> method in the loaded SWF file. For sounds loaded from sources other than SWF files (originating from loaded MP3 files or from Flash video), a cross-domain policy file on the source server grants access to data in loaded media. You cannot use the <code>computeSpectrum()</code> method if a sound is loaded from RTMP streams.</p>
<p><strong>cross-domain policy files</strong></p>
<p><font face="Arial">&lt;?xml version=&quot;1.0&quot;?&gt;<br />
&lt;cross-domain-policy&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;allow-access-from domain=&quot;*&quot; to-ports=&quot;*&quot; /&gt;<br />
&lt;/cross-domain-policy&gt;</font></p>
<p>&nbsp;A policy file obtained from the old default location&mdash;/crossdomain.xml on an HTTP server on port 80&mdash;implicitly authorizes access to all ports 1024 and above. There is no way to retrieve a policy file to authorize XMLSocket operations from any other location on an HTTP server; any custom locations for XMLSocket policy files must be on an XMLSocket server.</p>
<p>For more information, see the&nbsp; <a target="mm_external" href="http://www.adobe.com/devnet/flashplayer/security.html">Flash Player 9 Security white paper</a> </p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/46.htm</link>
			<title><![CDATA[Flash9全屏支持问题]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Fri,10 Nov 2006 11:54:24 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=46</guid>
		<description><![CDATA[<p>Flash 9.0.18.60&nbsp;或更高版本(到<a target="_blank" href="http://labs.adobe.com/downloads/flashplayer9.html"><strong>这里下载</strong></a>升级)已经支持真全屏，首先必须在Html中加入如下代码来启用全屏：</p>
<p>&lt;param&nbsp;name=&quot;allowFullScreen&quot;&nbsp;value=&quot;true&quot;&nbsp;/&gt; (FF使用参数：allowfullscreen=&quot;true&quot;)&nbsp;</p>
<p>如：</p>
<div class="quote"><font color="#666666">&lt;object classid=&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot; codebase=&quot;http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0&quot; <font color="#000000">width=&quot;550&quot; height=&quot;320&quot;</font> id=&quot;cfplay&quot;&gt;<br />
&nbsp; <font color="#000000">&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;</font><br />
&nbsp; &lt;param name=&quot;movie&quot; value=&quot;<font color="#000000">http://您的网址/cfplay/cfplay.swf</font>&quot; /&gt;<br />
&nbsp; &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;<br />
&nbsp; &lt;embed src=&quot;<font color="#000000">http://您的网址/cfplay/cfplay.swf</font>&quot; quality=&quot;high&quot; <font color="#000000">width=&quot;550&quot; height=&quot;320&quot;</font> name=&quot;cfplay&quot; <font color="#000000">allowFullScreen=&quot;true&quot;</font> type=&quot;application/x-shockwave-flash&quot; pluginspage=&quot;http://www.macromedia.com/go/getflashplayer&quot; /&gt;<br />
&lt;/object&gt;</font></div>
<div class="quote"><font color="#666666"></font>&nbsp;</div>
<div class="quote">但是问题很多，如果加入Flash透明支持：<font face="Arial">wmode=&quot;transparent&quot; 则全屏无效！</font></div>
<div class="quote"></div>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/45.htm</link>
			<title><![CDATA[让CMP在本地可以直接播放音乐]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Fri,03 Nov 2006 10:12:53 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=45</guid>
		<description><![CDATA[<p>Flash Player 8 已增强了安全模型，在该安全模型中，默认设置为不允许本地计算机上的 Flash 应用程序和 SWF 文件与 Internet 和本地文件系统通信。</p>
<p>在 Flash Player 8 中，本地 SWF 文件可以具有以下权限级别：</p>
<strong>只访问本地文件（默认）&nbsp;</strong>本地 SWF 文件可从本地文件系统和统一命名约定 (UNC) 网络路径读取内容。
<p><strong>只访问网络</strong> &nbsp;本地 SWF 文件可以访问网络（如 Internet），但不能访问安装该文件的本地文件系统。</p>
<p>故CMP(CenFun Music Player)默认是不可以直接在本地播放网络音乐的。</p>
<p>在网上查找资料，除了使用非官方Flash Player可以播放外，还可以在您的电脑添加一个受信任配置文件来解决，方法如下：</p>
<p>新建一个文本文件，如命名为：<font face="Arial">TrustFiles.txt&nbsp; 用来存放受信用配置，</font>在文件中添加内容，如下：</p>
<p><font face="Arial">c:\<br />
</font><font face="Arial">d:\<br />
e:\<br />
f:\</font></p>
<p>有几个分区就添加几个，然后保存，将此文件放到下面的目录即可：</p>
<p><font face="Arial"><font face="Arial">C:\Documents and Settings\Administrator\Application Data\Macromedia\Flash Player\#Security\FlashPlayerTrust</font></font></p>
<p>其中C是你的操作系统盘，Administrator是您的操作系统用户名，注意对应到您的情况，后面的目录如果没有就新建一个。</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/44.htm</link>
			<title><![CDATA[Javasript层拖拽]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Sat,28 Oct 2006 17:05:32 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=44</guid>
		<description><![CDATA[<p>学习Ajax，写了个简单的拖拽。</p>
<p>先定义一个层：</p>
<blockquote dir="ltr" style="margin-right: 0px">
<p>&lt;div id=&quot;layer&quot;&gt;&lt;/div&gt;</p>
</blockquote>
<p>层样式：</p>
<blockquote dir="ltr" style="margin-right: 0px">
<p>&nbsp;<font face="Arial">&lt;style type=&quot;text/css&quot;&gt;<br />
#layer{<br />
&nbsp;position:absolute;<br />
&nbsp;left:200px;<br />
&nbsp;top:200px; &nbsp;<br />
&nbsp;border:#CCCCCC solid 1px; <br />
&nbsp;width:100px; <br />
&nbsp;height:100px; <br />
&nbsp;cursor:pointer; <br />
&nbsp;background-color:#ffffff;<br />
-moz-user-select:none;<br />
&nbsp;}<br />
&lt;/style&gt;</font></p>
</blockquote>
<p dir="ltr">拖拽函数：</p>
<blockquote dir="ltr" style="margin-right: 0px">
<p dir="ltr"><font face="Arial"><font face="Arial">&lt;script language=&quot;JavaScript&quot; type=&quot;text/javascript&quot;&gt;</font><br />
window.onload=function(){<br />
&nbsp;drag(document.getElementById(&quot;layer&quot;));<br />
};<br />
function drag(o){<br />
&nbsp;//过滤层中子节点事件</font><font face="Arial"><br />
&nbsp;//if(o.firstChild){o.firstChild.onmousedown=function(){return false;};}<br />
&nbsp;o.onselectstart=function() {return(false)};<br />
&nbsp;o.onmousedown=function(e){<br />
&nbsp;&nbsp;e=e||window.event;<br />
&nbsp;&nbsp;var x=e.layerX||e.offsetX;<br />
&nbsp;&nbsp;var y=e.layerY||e.offsetY;<br />
&nbsp;&nbsp;document.onmousemove=function(e){<br />
&nbsp;&nbsp;&nbsp;e=e||window.event;<br />
&nbsp;&nbsp;&nbsp;o.style.left=(e.clientX-x)+&quot;px&quot;;<br />
&nbsp;&nbsp;&nbsp;o.style.top=(e.clientY-y)+&quot;px&quot;;<br />
&nbsp;&nbsp;};<br />
&nbsp;&nbsp;document.onmouseup=function(){document.onmousemove=null;};<br />
&nbsp;};<br />
}<br />
<font face="Arial">&lt;/script&gt;</font></font></p>
</blockquote>
<p dir="ltr">IE6和FF2下测试通过，在onmousemove中添加几个容器边缘判断便可限定拖拽范围。</p>
<p dir="ltr">function drag(o1,o2){<br />
&nbsp;var fix=document.all?2:0;<br />
&nbsp;o1.onselectstart=function() {return(false)};<br />
&nbsp;o1.onmousedown=function(e){<br />
&nbsp;&nbsp;e=e||window.event;<br />
&nbsp;&nbsp;e.cancelBubble = true;<br />
&nbsp;&nbsp;var x=e.layerX||e.offsetX;<br />
&nbsp;&nbsp;var y=e.layerY||e.offsetY;<br />
&nbsp;&nbsp;document.onmousemove=function(e){<br />
&nbsp;&nbsp;&nbsp;e=e||window.event;<br />
&nbsp;&nbsp;&nbsp;o2.style.left=(e.clientX-x-fix)+&quot;px&quot;;<br />
&nbsp;&nbsp;&nbsp;o2.style.top=(e.clientY-y-fix)+&quot;px&quot;;<br />
&nbsp;&nbsp;};<br />
&nbsp;&nbsp;document.onmouseup=function(){document.onmousemove=null;};<br />
&nbsp;};<br />
}</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/articles/43.htm</link>
			<title><![CDATA[Firefox 2.0 火狐2.0 浏览器官方正式发布下载]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Articles]]></category>
			<pubDate>Wed,25 Oct 2006 12:50:34 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=43</guid>
		<description><![CDATA[<p><img height="55" alt="Firefox 2" width="252" src="http://www.mozilla.com/img/firefox-title.png" />&nbsp; 火狐2.0 浏览器 </p>
<p>官方网址：<font face="Arial"><a target="_blank" href="http://www.mozilla.com/en-US/firefox/">http://www.mozilla.com/en-US/firefox/</a></font></p>
<p>The award-winning Web browser is now faster, more secure, and fully customizable to your online life. With Firefox 2, we&rsquo;ve added powerful new features that make your online experience even better.</p>
<div><a target="_blank" href="http://download.mozilla.org/?product=firefox-2.0&amp;os=win&amp;lang=zh-CN"><span><strong>Download Firefox - Free</strong> 2.0 for Windows, Chinese (Simplified)&nbsp;简体中文版下载(5.6MB)</span></a> </div>
<div></div>
<div>&nbsp;</div>
<div><a target="_blank" href="http://www.mozilla.com/en-US/firefox/all.html">Other&nbsp;Systems&nbsp;&amp;&nbsp;Languages 其他操作系统和语言版本下载</a></div>
<div></div>
<div>&nbsp;</div>
<div>前不久，<a target="_blank" href="http://www.microsoft.com/windows/ie/downloads/default.mspx">Internet Explorer 7</a>发布，正好与其对决。</div>
<div>&nbsp;</div>
<div>新安装后，感觉的确很不错，尤其在帮助里面有个<strong>致Internet Explorer用户</strong>，打开后写道：</div>
<div><font face="Arial"></font></div>
<div><font face="Arial">For Internet Explorer Users</font><font face="Arial"><br />
If you've been using Microsoft&reg; Internet Explorer, you'll find that it's easy to begin using Mozilla Firefox.</font></div>
<div>
<p>Note: This information applies to Mozilla Firefox for Windows and Mac OS.</p>
</div>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/articles/42.htm</link>
			<title><![CDATA[FCKeditor 2.3.2 for Pjblog2下载]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Articles]]></category>
			<pubDate>Tue,24 Oct 2006 14:18:09 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=42</guid>
		<description><![CDATA[<p>&nbsp;更新了一下本站的PJBlog2的编辑器FCKeditor-目前<a target="_blank" href="http://www.fckeditor.net/">官方</a>最新版本(<font face="Arial"><a target="_blank" href="http://www.fckeditor.net/whatsnew">http://www.fckeditor.net/whatsnew</a></font>)：</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p>October 16, 2006 - <strong>FCKeditor 2.3.2</strong> released </p>
</blockquote>
<p>简化信息：</p>
<ul>
    <li>仅保留ASP调用 </li>
    <li>仅保留英文(<font face="Arial">en.js)</font>和简体中文(<font face="Arial">zh-cn.js)</font>语言(默认简体中文) </li>
    <li>添加最新Flash9支持的允许全屏属性(语言信息文件208行新增变量<font face="Arial">DlgFlashChkallowfullscreen</font>) </li>
    <li>去掉源文件和范例文件 </li>
    <li>去掉文件上传和管理 </li>
    <li>简化功能列表，保留常用 </li>
    <li>其他相关配置，大家可自行更改目录中的<font face="Arial">fckconfig.js配置文件</font> </li>
</ul>
<p><a target="_blank" href="http://www.cenfun.com/down.asp?id=15"></a></p>
<p>更新方法：</p>
<ul>
    <li>直接下载压缩包，覆盖原来的<font face="Arial">FCKeditor目录即可</font> </li>
    <li><font face="Arial">推荐备份原来的<font face="Arial">FCKeditor目录，如先重命名，然后再解压包中的<font face="Arial">FCKeditor目录和所有文件到此</font></font></font> </li>
</ul>
<p>&nbsp;直接点击下载： <a target="_blank" href="http://www.cenfun.com/down.asp?id=15">下载地址</a>&nbsp;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/37.htm</link>
			<title><![CDATA[ASP中英文分页过程函数]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Fri,29 Sep 2006 11:08:40 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=37</guid>
		<description><![CDATA[<div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.cenfun.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/>&lt;%<br/>&#39;=================================================<br/>&#39;过程名：showpage<br/>&#39;作&nbsp;&nbsp;用：分页显示<br/>&#39;参&nbsp;&nbsp;数：<br/>&#39;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; language ----显示语言：en为英文 cn为中文<br/>&#39;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sfilename&nbsp;&nbsp;----链接地址<br/>&#39;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; totalnumber ----总数量<br/>&#39;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MaxPerPage&nbsp;&nbsp;----每页数量<br/>&#39;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ShowTotal&nbsp;&nbsp; ----是否显示总数量<br/>&#39;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ShowAllPages ---是否用下拉列表显示所有页面以供跳转<br/>&#39;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strUnit&nbsp;&nbsp;&nbsp;&nbsp; ----计数单位，如：条，页，张<br/>&#39;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CurrentPage ----当前页<br/>&#39;=================================================<br/>sub showpage(language,sfilename,totalnumber,MaxPerPage,ShowTotal,ShowAllPages,strUnit,CurrentPage)<br/>&#160;&#160;&#160;&#160;dim zh,en,str<br/>&#160;&#160;&#160;&#160;zh=&#34;共,首页,上一页,下一页,尾页,页次：,页,页,转到：&#34;<br/>&#160;&#160;&#160;&#160;en=&#34;Total,First,Previous,Next,Last,Page:,&amp;nbsp;,Page,Turn To:&#34;<br/>&#160;&#160;&#160;&#160;if language=&#34;en&#34; then<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;str=split(en,&#34;,&#34;)<br/>&#160;&#160;&#160;&#160;else<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;str=split(zh,&#34;,&#34;)<br/>&#160;&#160;&#160;&#160;end if<br/>&#160;&#160;&#160;&#160;dim n, i,strTemp,strUrl<br/>&#160;&#160;&#160;&#160;if totalnumber mod MaxPerPage=0 then<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;n= totalnumber \ MaxPerPage<br/>&#160;&#160;&#160;&#160;else<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;n= totalnumber \ MaxPerPage+1<br/>&#160;&#160;&#160;&#160;end if<br/>&#160;&#160;&#160;&#160;strTemp=&#34;&lt;table width=&#39;100%&#39;&gt;&#34;<br/>&#160;&#160;&#160;&#160;strTemp=strTemp &amp;&nbsp;&nbsp;&#34;&lt;tr align=&#39;right&#39;&gt;&lt;td&gt;&#34;<br/>&#160;&#160;&#160;&#160;if ShowTotal=true then <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;strTemp=strTemp&amp;str(0)&amp;&#34; &lt;b&gt;&#34; &amp; totalnumber &amp; &#34;&lt;/b&gt; &#34; &amp; strUnit &amp; &#34;&amp;nbsp;&amp;nbsp;&#34;<br/>&#160;&#160;&#160;&#160;end if<br/>&#160;&#160;&#160;&#160;strUrl=JoinChar(sfilename)<br/>&#160;&#160;&#160;&#160;if CurrentPage&lt;2 then<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;strTemp=strTemp &amp; str(1)&amp;&#34;&amp;nbsp;&#34;&amp;str(2)&amp;&#34;&amp;nbsp;&#34;<br/>&#160;&#160;&#160;&#160;else<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;strTemp=strTemp &amp; &#34;&lt;a href=&#39;&#34; &amp; strUrl &amp; &#34;page=1&#39;&gt;&#34;&amp;str(1)&amp;&#34;&lt;/a&gt;&amp;nbsp;&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;strTemp=strTemp &amp; &#34;&lt;a href=&#39;&#34; &amp; strUrl &amp; &#34;page=&#34; &amp; (CurrentPage-1) &amp; &#34;&#39;&gt;&#34;&amp;str(2)&amp;&#34;&lt;/a&gt;&amp;nbsp;&#34;<br/>&#160;&#160;&#160;&#160;end if<br/>&#160;&#160;&#160;&#160;if n-CurrentPage&lt;1 then<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;strTemp=strTemp&amp;str(3)&amp;&#34;&amp;nbsp;&#34;&amp;str(4)<br/>&#160;&#160;&#160;&#160;else<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;strTemp=strTemp &amp; &#34;&lt;a href=&#39;&#34; &amp; strUrl &amp; &#34;page=&#34; &amp; (CurrentPage+1) &amp; &#34;&#39;&gt;&#34;&amp;str(3)&amp;&#34;&lt;/a&gt;&amp;nbsp;&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;strTemp=strTemp &amp; &#34;&lt;a href=&#39;&#34; &amp; strUrl &amp; &#34;page=&#34; &amp; n &amp; &#34;&#39;&gt;&#34;&amp;str(4)&amp;&#34;&lt;/a&gt;&#34;<br/>&#160;&#160;&#160;&#160;end if<br/>&#160;&#160;&#160;&#160;strTemp=strTemp &amp; &#34;&amp;nbsp;&#34;&amp;str(5)&amp;&#34;&lt;strong&gt;&lt;font color=red&gt;&#34; &amp; CurrentPage &amp; &#34;&lt;/font&gt;/&#34; &amp; n &amp; &#34;&lt;/strong&gt;&#34;&amp;str(6)<br/>&#160;&#160;&#160;&#160;strTemp=strTemp &amp; &#34;&amp;nbsp;&lt;b&gt;&#34;&amp;MaxPerPage&amp;&#34;&lt;/b&gt;&#34;&amp;strUnit&amp;&#34;/&#34;&amp;str(7)<br/>&#160;&#160;&#160;&#160;if ShowAllPages=True then<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;strTemp=strTemp &amp; &#34;&amp;nbsp;&#34;&amp;str(8)&amp;&#34;&lt;sel&#101;ct name=&#39;page&#39; size=&#39;1&#39; onchange=&#34;&#34;javascript:window.location=&#39;&#34; &amp; strUrl &amp; &#34;page=&#34; &amp; &#34;&#39;+this.options[this.sel&#101;ctedIndex].value;&#34;&#34;&gt;&#34;&nbsp;&nbsp; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;for i = 1 to n&nbsp;&nbsp; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;strTemp=strTemp &amp; &#34;&lt;option value=&#39;&#34; &amp; i &amp; &#34;&#39;&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if cint(CurrentPage)=cint(i) then strTemp=strTemp &amp; &#34; sel&#101;cted &#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;strTemp=strTemp &amp; &#34;&gt;&#34;&amp;i&amp;&#34;&lt;/option&gt;&#34;&nbsp;&nbsp; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;next<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;strTemp=strTemp &amp; &#34;&lt;/sel&#101;ct&gt;&#34;<br/>&#160;&#160;&#160;&#160;end if<br/>&#160;&#160;&#160;&#160;strTemp=strTemp &amp; &#34;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#34;<br/>&#160;&#160;&#160;&#160;response.write strTemp<br/>end sub<br/>&#39;=================================================<br/>&#39;函数名：JoinChar<br/>&#39;作&nbsp;&nbsp;用：向地址中加入 ? 或 &amp; showpage要用到<br/>&#39;参&nbsp;&nbsp;数：strUrl&nbsp;&nbsp;----网址<br/>&#39;返回值：加了 ? 或 &amp; 的网址<br/>&#39;=================================================<br/>function JoinChar(strUrl)<br/>&#160;&#160;&#160;&#160;if strUrl=&#34;&#34; then<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;JoinChar=&#34;&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;exit function<br/>&#160;&#160;&#160;&#160;end if<br/>&#160;&#160;&#160;&#160;if InStr(strUrl,&#34;?&#34;)&lt;len(strUrl) then <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if InStr(strUrl,&#34;?&#34;)&gt;0 then<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if InStr(strUrl,&#34;&amp;&#34;)&lt;len(strUrl) then <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;JoinChar=strUrl &amp; &#34;&amp;&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;else<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;JoinChar=strUrl<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;end if<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;else<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;JoinChar=strUrl &amp; &#34;?&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;end if<br/>&#160;&#160;&#160;&#160;else<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;JoinChar=strUrl<br/>&#160;&#160;&#160;&#160;end if<br/>end function<br/>%&gt;<br/></div></div>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/articles/35.htm</link>
			<title><![CDATA[以前制作的一套举牌表情]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Articles]]></category>
			<pubDate>Fri,15 Sep 2006 15:54:50 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=35</guid>
		<description><![CDATA[<p>一套举牌表情，3帧gif动画格式，共62个。<br />PJBlog安装方法：<br />1，下载图片至您的博客images\smilies\emot文件夹下<br />2，在后台管理-表情管理-中添加或修改即可，注意路径的填写，例如：<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 表情图片代码 [顶]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 表情图片地址 emot/cfem01.gif<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />依此类推,如下表:</p>
<table cellspacing="1" cellpadding="2" border="0" class="TablePanel">
    <tbody>
        <tr align="center">
            <td class="TDHead" nowrap="nowrap">图片</td>
            <td class="TDHead" nowrap="nowrap" width="100">表情图片代码</td>
            <td class="TDHead" nowrap="nowrap" width="180">表情图片地址</td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem62.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem62.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[大家好]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem62.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem61.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem61.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[搞不清]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem61.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem60.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem60.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[有意思]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem60.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem59.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem59.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[做死的]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem59.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem58.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem58.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[对不起]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem58.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem57.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem57.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[有道理]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem57.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem56.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem56.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[好想你]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem56.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem55.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem55.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[开玩笑]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem55.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem54.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem54.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[我的天]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem54.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem53.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem53.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[调口味]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem53.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem52.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem52.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[收到]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem52.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem51.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem51.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="开心]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem51.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem50.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem50.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[加油]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem50.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem49.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem49.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[鼓掌]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem49.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem48.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem48.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[烦躁]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem48.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem36.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem36.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[跳楼]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem36.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem35.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem35.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[可惜]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem35.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem34.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem34.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[睡觉]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem34.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem33.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem33.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[我倒]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem33.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem32.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem32.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[注意]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem32.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem31.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem31.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[警告]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem31.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem30.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem30.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[发呆]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem30.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem29.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem29.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[同意]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem29.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem28.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem28.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[你强]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem28.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem27.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem27.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[好玩]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem27.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem26.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem26.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[统麻的]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem26.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem25.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem25.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[郁闷]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem25.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem24.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem24.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[COOL]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem24.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem23.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem23.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[靠]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem23.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem22.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem22.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[感动]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem22.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem21.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem21.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[PK]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem21.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem20.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem20.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[搞醉你]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem20.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem19.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem19.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[爽]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem19.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem18.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem18.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[没搞错]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem18.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem17.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem17.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[砍]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem17.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem16.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem16.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[呵呵]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem16.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem15.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem15.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[OK]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem15.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem14.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem14.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[踩一脚]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem14.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem13.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem13.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[汗]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem13.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem12.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem12.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[西夏的]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem12.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem11.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem11.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[切]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem11.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem10.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem10.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[我爱你]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem10.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem09.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem09.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[555]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem09.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem08.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem08.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[那确实]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem08.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem07.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem07.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[哦]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem07.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem06.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem06.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[美女]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem06.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem05.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem05.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[哇]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem05.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem04.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem04.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[支持]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem04.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem03.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem03.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[啊]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem03.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem02.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem02.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[谢谢]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem02.gif" /></td>
        </tr>
        <tr align="center">
            <td><img alt="emot/cfem01.gif" src="http://www.cenfun.com/blog/images/smilies/emot/cfem01.gif" /></td>
            <td><input class="text" size="14" name="smiles" value="[顶]" /></td>
            <td><input class="text" size="27" name="smilesURL" value="emot/cfem01.gif" /></td>
        </tr>
    </tbody>
</table>
请大家在图片上，右键目标另存为下载，引用请注明来自CenFun.com]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/cmp/33.htm</link>
			<title><![CDATA[CenFun Music Player展示和调用网址收集专贴]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[CMP]]></category>
			<pubDate>Thu,31 Aug 2006 12:47:02 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=33</guid>
		<description><![CDATA[<p><br />
本站论坛开通：<a href="http://bbs.cenfun.com/">http://bbs.cenfun.com/</a>&nbsp; 欢迎大家注册交流！<br />
<br />
以后都在论坛发布更新，有需要补充的请直接在论坛发贴！</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/cmp/2.htm</link>
			<title><![CDATA[CenFun Music Player  下载]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[CMP]]></category>
			<pubDate>Tue,25 Jul 2006 15:39:03 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=2</guid>
		<description><![CDATA[<div><strong>名称：CenFun Music Player</strong></div>
<div>作者：<a href="http://www.cenfun.com/blog/mailto:cenfun@gmail.com?subject=CenFun%20Music%20Player%20">CenFun</a>&nbsp; 邮箱:cenfun(at)gmail.com&nbsp;</div>
<div>
<div><strong>请进论坛下载安装包：&nbsp;</strong>&nbsp;<a href="http://bbs.cenfun.com/">http://bbs.cenfun.com/</a></div>
</div>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/19.htm</link>
			<title><![CDATA[自制Flash FLV视频播放器]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Mon,24 Jul 2006 17:58:04 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=19</guid>
		<description><![CDATA[<p>大家好，前不久笔者将<a href="http://www.cenfun.com/cfplay/" target="_blank">CenFun Music Player</a>加入flv视频播放功能，这里单独拿出来给大家做一个Flash FLV播放器(仅ActionScript控制，不使用 FLVPlayback 组件)，如有不当之处还望指正。<br />下面就打开您的Macromedia Flash Player 8(推荐)开始吧！</p>
<p>首先新建文档，设置背景色黑色，其他默认，然后建四个图层。</p>
<p><strong>第一层用来放视频元件，方法如下：</strong></p>
<p>1，在&quot;库&quot;面板（&quot;窗口&quot;&gt;&quot;库&quot;）中，从&quot;库&quot;弹出菜单中选择&quot;新建视频&quot;。 <br />2，在&quot;视频属性&quot;对话框中，命名视频元件并选择&quot;视频&quot;（由 ActionScript 控制）。 <br />3，将视频对象从&quot;库&quot;面板拖到舞台正中间，以创建视频对象实例。 <br />4，对此视频元件取实例名为 &quot;my_video&quot;。</p>
<p><strong>第二层用来放视频地址输入栏，方法如下：</strong></p>
<p>1，在舞台左下方用文本工具（快捷键T）画一个地址输入文本框，类型选择&quot;输入文本&quot;类型。<br />2，在&quot;线条类型&quot;弹出菜单中选择&quot;单行&quot;，并确认&quot;在文本周围显示边框&quot;处于选中状态。<br />3，对此文本框取实例名为&quot;url&quot;。</p>
<p><strong>第三层用来放播放开始按钮，方法如下：</strong></p>
<p>1，在&quot;库&quot;面板（&quot;窗口&quot;&gt;&quot;库&quot;）中，新建元件按钮，按钮样式自行制作好，暂时能用就行。<br />2，将新建的按钮对象从&quot;库&quot;面板拖到舞台地址输入框后面，以创建播放开始按钮。 <br />3，对此播放开始按钮取实例名为&quot;play_bt&quot;。</p>
<p><strong>第四层用来放所有的ActionScript：</strong></p>
<p>//首先初始化</p>
<p>//创建一个 NetConnection 对象<br />var my_nc:NetConnection = new NetConnection();<br />//创建一个本地流连接<br />my_nc.connect(null);<br />//创建一个 NetStream 对象<br />var my_ns:NetStream = new NetStream(my_nc);</p>
<p>//写一个播放函数playflv()</p>
<p>function playflv(flv) {<br />&nbsp;//参数flv是要播放的flv视频地址<br />&nbsp;//trace(flv);//测试用<br />&nbsp;// 将 NetStream 视频输入信号附加到 Video 对象，即视频元件my_video<br />&nbsp;my_video.attachVideo(my_ns);<br />&nbsp;// 设置缓冲时间，单位秒，下面设置3秒即可<br />&nbsp;my_ns.setBufferTime(3);<br />&nbsp;// 开始播放 FLV 文件<br />&nbsp;my_ns.play(flv);<br />}</p>
<p>//点击开始播放按钮开始播放</p>
<p>play_bt.onRelease = function() {<br />&nbsp;playflv(url.text);<br />&nbsp;//获得url输入框的视频文件地址，并调用播放函数播放url对应的flv视频文件<br />};</p>
<p>//////////////////////////////////////////////////////////////////////////////<br />//至此一个最简单的播放器已经做完了，下面要做的都是对其进行更多的控制和表现工作。<br />//这里就其几个重要的方面进行制作，其他的还需要大家发挥自己的想象去进行更好的设计制作。<br />//注意，以下代码非必要，未经测试，望大家一个一个尝试实现。特别注意路径和实例名的对应。</p>
<p>//*********************************<br />//<strong>1，播放的控制，暂停和停止的实现</strong><br />//新建两个按钮，一个暂停(pause_bt)，一个停止(stop_bt)，原理和播放按钮一样。</p>
<p>pause_bt.onRelease = function() {<br />&nbsp;my_ns.pause();<br />};</p>
<p>stop_bt.onRelease = function() {<br />&nbsp;my_ns.seek(0);<br />&nbsp;//搜寻从0开始播放<br />&nbsp;my_ns.pause(true);<br />&nbsp;//参数true表示暂停，若是false则表示从暂停变为继续播放，若没有参数则为在暂停/播放中切换。<br />};</p>
<p>//*********************************<br />//<strong>2，视频下载进度<br /></strong>//这个比较简单，和一般的下载进度类似，原理就是播放时将已下载的和总共文件大小进行百分比，然后显示出来。<br />//新建显示百分比的静态文本(info)和进度条(bar)，其初始状态、位置自行调整</p>
<p>this.onEnterFrame =function () {<br />&nbsp;var loadedbytes = my_ns.bytesLoaded;<br />&nbsp;//获得已经下载字节<br />&nbsp;var totalbytes = my_ns.bytesTotal;<br />&nbsp;//文件总大小<br />&nbsp;if (totalbytes == undefined || totalbytes&lt;4000) {<br />&nbsp;&nbsp;info.text = &quot;0%&quot;;<br />&nbsp;&nbsp;bar._width = 1;<br />&nbsp;} else {<br />&nbsp;&nbsp;var nowLoadPercent = Math.round(loadedbytes/totalbytes*100);<br />&nbsp;&nbsp;if (isNaN(nowLoadPercent)) {<br />&nbsp;&nbsp;&nbsp;info.text = &quot;0%&quot;;<br />&nbsp;&nbsp;&nbsp;bar._width = 1;<br />&nbsp;&nbsp;} else {<br />&nbsp;&nbsp;&nbsp;info.text = nowLoadPercent+&quot;%&quot;;<br />&nbsp;&nbsp;&nbsp;bar._width = nowLoadPercent*35/100;<br />&nbsp;&nbsp;&nbsp;if (nowLoadPercent == 100) {<br />&nbsp;&nbsp;&nbsp;&nbsp;delete this.onEnterFrame;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;}<br />&nbsp;}<br />}</p>
<p>//*********************************<br />//<strong>3，视频尺寸修正或调整</strong><br />//这个比较重要，因为视频尺寸比例一般都不一样，故播放时要进行调整，以免失真变形。<br />//原理就是获得flv的尺寸，然后重新调整my_video的尺寸，最后将位置居中，必要时还可进行缩放处理（这里省略）。</p>
<p>//首先写个改变尺寸函数changesize(w, h)，w为要改变为的宽度，h为要改变为的高度<br />function changesize(w, h) {<br />&nbsp;//改变到传进来的参数尺寸<br />&nbsp;my_video._width = w;<br />&nbsp;my_video._height = h;<br />&nbsp;//trace(&quot;w:&quot;+w+&quot;h:&quot;+h);//测试用<br />&nbsp;//位置居中处理，假如你的视频舞台宽550，高400<br />&nbsp;my_video._x = 550/2-w/2;<br />&nbsp;my_video._y = 400/2-h/2;<br />}<br />//然后获得flv的固有尺寸，并调用以上函数改变它<br />//此处理函数在调用 my_ns.play() 方法后而在视频播放头前进之前触发<br />my_ns.onMetaData = function(infoObject:Object) {<br />&nbsp;//获得FLV文件中嵌入的描述性信息，这里获得宽/高<br />&nbsp;var flv_width = infoObject.width;<br />&nbsp;var flv_height = infoObject.height;<br />&nbsp;//改变尺寸<br />&nbsp;changesize(flv_width, flv_height);<br />};</p>
<p>//*********************************<br />//<strong>4，播放时间和进度<br /></strong>//原理和下载进度类似，先获得总持续时间，然后获得当前时间对其进行百分比，也可做进度条。<br />// 定义总持续时间全局变量,并获得其值。<br />var flv_duration;<br />my_ns.onMetaData = function(infoObject:Object) {<br />&nbsp;//获得FLV文件中嵌入的描述性信息，这里获得获得总持续时间（单位：秒）<br />&nbsp;var flv_duration = infoObject.duration;<br />};<br />//注意：这里可以和获得宽高写在一起。<br />//获取当前播放时间<br />var flv_thistime = my_ns.time;<br />//然后便可制作播放进度了，和下载进度类似，大家自己制作，此处略。</p>
<p>//*********************************<br />//<strong>5，音量的控制<br /></strong>//这个复杂一点，必须先将音频从 FLV 文件附加到舞台上的影片剪辑，然后对其进行控制<br />//新建影片剪辑my_ns_mc，并附加音频<br />my_ns_mc.attachAudio(my_ns);<br />//为影片剪辑创建新的 Sound 对象<br />var my_ns_sound = new Sound(my_ns_mc);<br />//初始化音量(此处默认80)<br />var flv_volume = 80;<br />my_ns_sound.setVolume(flv_volume);<br />//最后对flv_volume的大小（0到100间）进行控制即可改变音量大小<br />//这部分制作也省略，大家自由发挥，还可以制作静音功能，即flv_volume为0</p>
<p>//*********************************<br />//还有，像快进，快退，缓冲显示等等，都可以实现，大家自行研究。</p>
<p>//////////////////////////////////////////////////////////////////////////////<br />最后，一个Flash FLV播放器的制作基本完成了，推荐想学flash的朋友亲自动手去实现，不要老是想去下载什么源码然后修改一通，那样就体会不到其中的很多奥妙了！</p>
<p>补充一个相关问题：flv播放没有图象，只有声音，这是因为这个flv文件用flash 8的编码格式压缩，而你发布的flash播放器为flash 7或更低的版本,故升级为版本8即可，或者将flv文件采用flash 7的编码格式压缩。</p>
<p>CenFun<br />2006.1.13</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/articles/28.htm</link>
			<title><![CDATA[期待Ice Age 2 冰河世纪2]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Articles]]></category>
			<pubDate>Wed,22 Mar 2006 12:34:43 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=28</guid>
		<description><![CDATA[<script language="JavaScript" type="text/javascript">
var bannerAD=new Array();
var bannerADlink=new Array();
var adNum=-1;
bannerAD[0]="http://www.blueskystudios.com/interface/frontend_marqueeimage1.jpg";bannerADlink[0]="http://www.blueskystudios.com/interface/frontend_marqueeimage1.jpg";
bannerAD[1]="http://www.blueskystudios.com/interface/frontend_marqueeimage2.jpg";bannerADlink[1]="http://www.blueskystudios.com/interface/frontend_marqueeimage2.jpg";
bannerAD[2]="http://www.blueskystudios.com/interface/frontend_marqueeimage3.jpg";bannerADlink[2]="http://www.blueskystudios.com/interface/frontend_marqueeimage3.jpg";
bannerAD[3]="http://www.blueskystudios.com/interface/frontend_marqueeimage4.jpg";bannerADlink[3]="http://www.blueskystudios.com/interface/frontend_marqueeimage4.jpg";
bannerAD[4]="http://www.blueskystudios.com/interface/frontend_marqueeimage5.jpg";bannerADlink[4]="http://www.blueskystudios.com/interface/frontend_marqueeimage5.jpg";
bannerAD[5]="http://www.blueskystudios.com/interface/frontend_marqueeimage6.jpg";bannerADlink[5]="http://www.blueskystudios.com/interface/frontend_marqueeimage6.jpg";
bannerAD[6]="http://www.blueskystudios.com/interface/frontend_marqueeimage7.jpg";bannerADlink[6]="http://www.blueskystudios.com/interface/frontend_marqueeimage7.jpg";
bannerAD[7]="http://www.blueskystudios.com/interface/frontend_marqueeimage8.jpg";bannerADlink[7]="http://www.blueskystudios.com/interface/frontend_marqueeimage8.jpg";
bannerAD[8]="http://www.blueskystudios.com/interface/frontend_marqueeimage9.jpg";bannerADlink[8]="http://www.blueskystudios.com/interface/frontend_marqueeimage9.jpg";
bannerAD[9]="http://www.blueskystudios.com/interface/frontend_marqueeimage10.jpg";bannerADlink[9]="http://www.blueskystudios.com/interface/frontend_marqueeimage10.jpg";
bannerAD[10]="http://www.blueskystudios.com/interface/frontend_marqueeimage11.jpg";bannerADlink[10]="http://www.blueskystudios.com/interface/frontend_marqueeimage11.jpg";
bannerAD[11]="http://www.blueskystudios.com/interface/frontend_marqueeimage12.jpg";bannerADlink[11]="http://www.blueskystudios.com/interface/frontend_marqueeimage12.jpg";
bannerAD[12]="http://www.blueskystudios.com/interface/frontend_marqueeimage13.jpg";bannerADlink[12]="http://www.blueskystudios.com/interface/frontend_marqueeimage13.jpg";
bannerAD[13]="http://www.blueskystudios.com/interface/frontend_marqueeimage14.jpg";bannerADlink[13]="http://www.blueskystudios.com/interface/frontend_marqueeimage14.jpg";
bannerAD[14]="http://www.blueskystudios.com/interface/frontend_marqueeimage15.jpg";bannerADlink[14]="http://www.blueskystudios.com/interface/frontend_marqueeimage15.jpg";
var preloadedimages=new Array();
for (i=0;i<14;i++){
preloadedimages[i]=new Image();
preloadedimages[i].src=bannerAD[i];
}
function setTransition()
{
if (document.all)
{
bannerADrotator.filters.revealTrans.Transition=Math.floor(Math.random()*23);
bannerADrotator.filters.revealTrans.apply();
}
}
function playTransition()
{
if (document.all)bannerADrotator.filters.revealTrans.play()
}
function nextAd()
{
if(adNum<bannerAD.length-1)
adNum++;
else
adNum=0;
setTransition();
document.images.bannerADrotator.src=bannerAD[adNum];
playTransition();
theTimer=setTimeout("nextAd()", 5000);
}
function jump2url()
{
jumpUrl=bannerADlink[adNum];
jumpTarget='_blank';
if (jumpUrl != '')
{if (jumpTarget != '')
window.open(jumpUrl,jumpTarget);
else
location.href=jumpUrl;
}}
function displayStatusMsg()
{ status=bannerADlink[adNum];document.returnValue = true;}
</script>
<a href="http://www.cenfun.com/blog/javascript:jump2url();"><img style="FILTER: revealTrans(duration=2, transition=20)" height="324" src="http://www.cenfun.com/blog/javascript:nextAd()" width="597" border="0" name="bannerADrotator" alt="" /></a>
<p>◆ 片　　名：冰河世纪2 / 英文：Ice Age 2 / 原名：Ice Age 2: The Meltdown (2006)<br />◆ 导　　演：Carlos Saldanha　Chris Wedge　<br />◆ 主　　演：Ray Romano　John Leguizamo　Denis Leary　Drea de Matteo　Queen Latifah　<br />◆ 类　　型：G　<br />◆ 国家地区：美国　 <br />◆ 语　　言：English　 <br />◆ 发行公司：<a href="http://www.foxmovies.com/" target="_blank">20th Century Fox</a> 二十世纪福克斯<br />◆ 首映日期：2006年3月21日 <br />◆ 制作公司：<a href="http://www.blueskystudios.com/" target="_blank">Blue Sky</a> 蓝天工作室 <br />◆ 官方网站：<a href="http://www.iceage2.com">http://www.iceage2.com</a><br />◆ 专题网站：<a href="http://microsites2.foxinternational.com/us/iceage2/index.html">http://microsites2.foxinternational.com/us/iceage2/index.html</a> <br />◆ 影片简介：<br />　　《冰河世纪2》讲述冰河时期快要结束了，正在享受温泉跟和煦的日光的剑齿虎迪耶戈、树懒曼尼和猛犸像希德发现身边的冰川在渐渐消融，大量的海水却快要涌上来了，于是他们必须在灾难发生前告诉大家并及时逃离山谷，躲过这场灭顶之灾。<br />◆ 壁　　纸：<br /></p>
<p><img alt="" src="http://microsites2.foxinternational.com/us/iceage2/images/desktop_t1_lg.jpg" /><a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_1_sm.jpg" target="_blank">800X600</a> <a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_1_md.jpg" target="_blank">1024X768</a> <a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_1_lg.jpg" target="_blank">1280X960</a> </p>
<p><img alt="" src="http://microsites2.foxinternational.com/us/iceage2/images/desktop_t2_lg.jpg" /><a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_2_sm.jpg" target="_blank">800X600</a> <a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_2_md.jpg" target="_blank">1024X768</a> <a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_2_lg.jpg" target="_blank">1280X960</a></p>
<p><img alt="" src="http://microsites2.foxinternational.com/us/iceage2/images/desktop_t3_lg.jpg" /><a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_3_sm.jpg" target="_blank">800X600</a> <a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_3_md.jpg" target="_blank">1024X768</a> <a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_3_lg.jpg" target="_blank">1280X960</a></p>
<p><img alt="" src="http://microsites2.foxinternational.com/us/iceage2/images/desktop_t4_lg.jpg" /><a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_4_sm.jpg" target="_blank">800X600</a> <a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_4_md.jpg" target="_blank">1024X768</a> <a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_4_lg.jpg" target="_blank">1280X960</a></p>
<p><img alt="" src="http://microsites2.foxinternational.com/us/iceage2/images/desktop_t5_lg.jpg" /><a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_5_sm.jpg" target="_blank">800X600</a> <a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_5_md.jpg" target="_blank">1024X768</a> <a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_5_lg.jpg" target="_blank">1280X960</a></p>
<p><img alt="" src="http://microsites2.foxinternational.com/us/iceage2/images/desktop_t6_lg.jpg" /><a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_6_sm.jpg" target="_blank">800X600</a> <a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_6_md.jpg" target="_blank">1024X768</a> <a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_6_lg.jpg" target="_blank">1280X960</a></p>
<p><img alt="" src="http://microsites2.foxinternational.com/us/iceage2/images/desktop_t7_lg.jpg" /><a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_7_sm.jpg" target="_blank">800X600</a> <a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_7_md.jpg" target="_blank">1024X768</a> <a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_7_lg.jpg" target="_blank">1280X960</a></p>
<p><img alt="" src="http://microsites2.foxinternational.com/us/iceage2/images/desktop_t8_lg.jpg" /><a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_8_sm.jpg" target="_blank">800X600</a> <a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_8_md.jpg" target="_blank">1024X768</a> <a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_8_lg.jpg" target="_blank">1280X960</a></p>
<p><img alt="" src="http://microsites2.foxinternational.com/us/iceage2/images/desktop_t9_lg.jpg" /><a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_9_sm.jpg" target="_blank">800X600</a> <a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_9_md.jpg" target="_blank">1024X768</a> <a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_9_lg.jpg" target="_blank">1280X960</a></p>
<p><img alt="" src="http://microsites2.foxinternational.com/us/iceage2/images/desktop_t10_lg.jpg" /><a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_10_sm.jpg" target="_blank">800X600</a> <a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_10_md.jpg" target="_blank">1024X768</a> <a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_10_lg.jpg" target="_blank">1280X960</a></p>
<p><img alt="" src="http://microsites2.foxinternational.com/us/iceage2/images/desktop_t11_lg.jpg" /><a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_11_sm.jpg" target="_blank">800X600</a> <a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_11_md.jpg" target="_blank">1024X768</a> <a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_11_lg.jpg" target="_blank">1280X960</a></p>
<p><img alt="" src="http://microsites2.foxinternational.com/us/iceage2/images/desktop_t12_lg.jpg" /><a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_12_sm.jpg" target="_blank">800X600</a> <a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_12_md.jpg" target="_blank">1024X768</a> <a href="http://microsites2.foxinternational.com/us/iceage2/images/desktop_12_lg.jpg" target="_blank">1280X960</a></p>
◆ 预 告 片：<br />(2005年12月11日发布)<br /><a href="http://movies.apple.com/movies/fox/ice_age_2/ice_age_2-tlrD_h720p.mov" target="_blank">720p</a><br /><a href="http://movies.apple.com/movies/fox/ice_age_2/ice_age_2-tlrD_h480p.mov" target="_blank">480p</a><br /><a href="http://movies.apple.com/movies/fox/ice_age_2/ice_age_2-tlrD_h480.mov" target="_blank">480</a><br /><a href="http://movies.apple.com/movies/fox/ice_age_2/ice_age_2-tlrD_h320.mov" target="_blank">320</a><br />(2005年7月12日发布)<br /><a href="http://images.apple.com/movies/fox/ice_age_2/ice_age_2-tsr_m480.mov" target="_blank">480</a><br /><a href="http://images.apple.com/movies/fox/ice_age_2/ice_age_2-tsr_m320.mov" target="_blank">320</a><br /><a href="http://images.apple.com/movies/fox/ice_age_2/ice_age_2-tsr_m240.mov" target="_blank">240</a><br />]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/articles/24.htm</link>
			<title><![CDATA[从太空看世界上最高楼]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Articles]]></category>
			<pubDate>Fri,27 Jan 2006 23:16:08 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=24</guid>
		<description><![CDATA[从Google Earth截到几个世界上最高楼的图（附对照图及经纬坐标），大家看看是否正确：<br/><br/>国际金融中心大厦，中国台北。台北101大楼高508米（含天线），有世界最大且最重的“风阻尼器”，还有两台世界最高速的电梯，从一楼到89楼，只要39秒的时间。<br/><img src="http://www.cenfun.com/blog/attachments/month_0601/r2006127231423.jpg" border="0" alt=""/><br/><img src="http://www.cenfun.com/blog/attachments/month_0601/g2006127231452.jpg" border="0" alt=""/><br/><br/>国家石油双子星座大厦（塔楼1），451.9米，位于马来西亚吉隆坡。<br/><img src="http://www.cenfun.com/blog/attachments/month_0601/v2006127231535.jpg" border="0" alt=""/><br/><img src="http://www.cenfun.com/blog/attachments/month_0601/82006127231553.jpg" border="0" alt=""/><br/><br/>西尔斯大楼，443米，位于美国芝加哥。<br/><img src="http://www.cenfun.com/blog/attachments/month_0601/c200612723174.jpg" border="0" alt=""/><br/><img src="http://www.cenfun.com/blog/attachments/month_0601/p2006127231724.jpg" border="0" alt=""/><br/><br/>金茂大厦，420.5米，位于中国上海。<br/><img src="http://www.cenfun.com/blog/attachments/month_0601/42006127231758.jpg" border="0" alt=""/><br/><img src="http://www.cenfun.com/blog/attachments/month_0601/w2006127231825.jpg" border="0" alt=""/><br/><br/>国际金融中心大厦，420米，位于中国香港。<br/><img src="http://www.cenfun.com/blog/attachments/month_0601/h2006127231857.jpg" border="0" alt=""/><br/><img src="http://www.cenfun.com/blog/attachments/month_0601/k2006127231920.jpg" border="0" alt=""/><br/><br/>地王大厦，384米，位于中国深圳。<br/><img src="http://www.cenfun.com/blog/attachments/month_0601/e2006127232033.jpg" border="0" alt=""/><br/><img src="http://www.cenfun.com/blog/attachments/month_0601/a2006127232049.jpg" border="0" alt=""/><br/><br/>帝国大厦，381米，位于美国纽约。kingkong金刚爬的就是这个东东。<br/><img src="http://www.cenfun.com/blog/attachments/month_0601/c2006127232220.jpg" border="0" alt=""/><br/><img src="http://www.cenfun.com/blog/attachments/month_0601/82006127232246.jpg" border="0" alt=""/><br/><br/>阿摩珂大厦，高度346米，位于芝加哥。<br/><img src="http://www.cenfun.com/blog/attachments/month_0601/j2006127232323.jpg" border="0" alt=""/><br/><img src="http://www.cenfun.com/blog/attachments/month_0601/g2006127232335.jpg" border="0" alt=""/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/cmp/23.htm</link>
			<title><![CDATA[关于提示歌词加载错误]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[CMP]]></category>
			<pubDate>Wed,18 Jan 2006 15:32:41 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=23</guid>
		<description><![CDATA[<p>可能问题：在本地是可以显示歌词的，可以上传到网上后，就显示：歌词加载错误，请问这是为什么啊？<br />
<br />
检测歌词：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 确认歌词文件能直接下载到，即直接打开歌词地址，浏览器能直接正常打开或提示保存。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如你的歌词文件为：name.lrc&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 若放在网站lrc目录中：http://www.cenfun.com/lrc/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 则在浏览器地址栏直接输入以下地址，歌词应该能直接打开或提示文件下载：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.cenfun.com/lrc/name.lrc</p>
<p>若打开错误，则可能有以下几个原因：<br />
1，地址输入错误，当前路径下不存歌词文件。<br />
2，部分空间对lrc文件后缀的限制，导致无法正常加载，请把歌词文件后缀lrc改成txt试一下，同时别忘改歌曲列表中的歌词链接。<br />
3，某些国外的空间可能不支持中文文件名，导致歌词链接错误，请修改为字母数字文件名试试。</p>
<p>若能正常打开，则可能有以下几个原因：<br />
1，歌词文件地址填写不对，请仔细核对，绝对地址注意加前缀&ldquo;http://&rdquo;，相对地址注意&ldquo;/&rdquo;使用是否正确。<br />
2，一些免费的网站空间会自动在上传的文本文件中加入其他代码，如广告代码等，可能导致不能正常加载显示。推荐更换其他空间。<br />
3，歌词格式是否正确？参照：<a href="http://www.cenfun.com/blog/article.asp?id=22">http://www.cenfun.com/blog/article.asp?id=22</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 推荐自行编辑歌词文件，上传到自己的空间对应文件夹中。</p>
<p>歌词一般不需要编辑，网上可以直接搜索下载，如：</p>
<ul>
    <li><a target="_blank" href="http://www.qqlrc.com/">http://www.qqlrc.com/</a></li>
    <li><a target="_blank" href="http://www.51lrc.com/">http://www.51lrc.com/</a></li>
    <li><a target="_blank" href="http://geci.baidu.com/">http://geci.baidu.com/</a></li>
</ul>
<p>下载对应的歌词，用文本编辑工具稍作修改即可！<br />
直接上传至lrc目录，设置好XML列表中歌词调用地址即可。</p>
<p>若是用asp在线管理上传，直接用文本工具打开下载的歌词文件，复制里面的内容，粘贴在编辑歌词内容里保存即可！</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/cmp/22.htm</link>
			<title><![CDATA[认识LRC歌词格式]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[CMP]]></category>
			<pubDate>Wed,18 Jan 2006 15:28:21 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=22</guid>
		<description><![CDATA[<p>LRC 歌词是一种包含着&ldquo;[*:*]&rdquo;形式的&ldquo;标签(tag)&rdquo;的、基于纯文本的歌词专用格式。最早由郭祥祥先生(Djohan)提出并在其程序中得到应用。这种歌词文件既可以用来实现卡拉OK功能（需要专门程序），又能以普通的文字处理软件查看、编辑。当然，实际操作时通常是用专门的LRC歌词编辑软件进行高效编辑的。以下具体介绍LRC格式中的&ldquo;标签&rdquo;。<br />
<br />
时间标签（Time-tag）</p>
<p>形式为&quot;[mm:ss]&quot;或&quot;[mm:ss.fff]&quot;（分钟数:秒数）。<br />
数字须为非负整数，比如&quot;[12:34.5]&quot;是有效的，而&quot;[0x0C:-34.5]&quot;无效。</p>
<p>它可以位于某行歌词中的任意位置。一行歌词可以包含多个时间标签（比如歌词中的迭句部分）。<br />
根据这些时间标签，用户端程序会按顺序依次高亮显示歌词，从而实现卡拉OK功能。另外，标签无须排序。</p>
<p>标识标签（ID-tags）</p>
<p>其格式为&quot;[标识名:值]&quot;。大小写等价。以下是预定义的标签。</p>
<p>[ar:艺人名] <br />
[ti:曲名] <br />
[al:专辑名] <br />
[by:编者（指编辑LRC歌词的人）] <br />
[offset:时间补偿值] 其单位是毫秒，正值表示整体提前，负值相反。这是用于总体调整显示快慢的。</p>
<p>样例</p>
<p><font color="#ff0000">[ar:unknown] <br />
[ti:sample] <br />
[al:none] <br />
[by:me] <br />
[01:02.355][00:00]This line should be sung twice <br />
[00:05.7]And this one... once only. </font></p>
<p><br />
开发标准(供程序员阅读参考)</p>
<p>以下列出了开发支持LRC格式的软件时应遵守的一些标准。</p>
<p>无论是否在行首，行内凡具有&ldquo;[*:*]&rdquo;形式的都应认为是标签。（注意：其中的冒号并非全角字符&ldquo;：&rdquo;） <br />
凡是标签都不应显示。 <br />
凡是标签，且被冒号分隔的两部分都为非负数，则应认为是时间标签。<br />
因此，对于非标准形式（非&ldquo;[mm:ss]&rdquo;）的时间标签也应能识别（如&ldquo;[0:0]&rdquo;）。 <br />
凡是标签，且非时间标签的，应认为是标识标签。 <br />
标识名中大小写等价。 <br />
为了向后兼容，应对未定义的新标签作忽略处理。另应对注释标签（[:]）后的同一行内容作忽略处理。 <br />
应允许一行中存在多个标签，并能正确处理。 <br />
应能正确处理未排序的标签。<br />
<br />
对歌词的处理：<br />
<br />
通过加载歌词文件字符串的方式加载，然后解析文本字符串。故歌词能否正常显示且更多的容错，解析很重要，这里也是通过切割文本的方法解析，然后排序。<br />
所以请大家使用标准格式的lrc文件，作者建议：<br />
1，尽量不要空行，或者仅时间标签而无内容<br />
2，一行一句歌词，可多个时间<br />
3，注意编码格式和换行格式，windows和linux的回车换行不一样，请用windows记事本打开查看无异常即可，比如有黑小框，空行，挤在一行等。</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/21.htm</link>
			<title><![CDATA[允许Flash跨域加载数据]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Wed,18 Jan 2006 14:57:08 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=21</guid>
		<description><![CDATA[<p>Flash 文档可通过使用以下某种数据加载调用方法从外部源加载数据：<code>XML.load()</code>、<code>XML.sendAndLoad()</code>、<code>LoadVars.load()</code>、<code>LoadVars.sendAndLoad()</code>、<code>loadVariables()</code>、<code>loadVariablesNum()、MovieClip.loadVariables()</code>、<code>XMLSocket.connect()</code> 和 Macromedia Flash Remoting (<code>NetServices.createGatewayConnection</code>)。另外，SWF 文件可以在运行时导入运行时共享库 (RSL) 或另一个 SWF 文件中定义的资源。默认情况下，数据或 RSL 必须与加载该外部数据或媒体的 SWF 文件驻留在同一个域中。 </p>
<p>若要使运行时共享库中的数据和资源可用于其它域中的 SWF 文件，应使用<strong>跨域策略文件</strong>。跨域策略文件是一个 XML 文件，该文件提供的方法可以使服务器指示其数据和文档可用于从某些域或所有域提供的 SWF 文件。服务器的策略文件指定的域所提供的所有 SWF 文件都将被允许访问该服务器中的数据、资源或 RSL。 </p>
<p>如果您加载外部数据，即使不想将任何文件移植到 Flash Player 7 中，也应创建策略文件。如果您使用 RSL，并且调用或被调用文件是以 Flash Player 7 为目标播放器发布的，则应创建策略文件。<br /><font size="2"><br /><strong>允许跨域数据加载</strong></font></p>
<p>当 Flash 文档试图访问另一个域中的数据时，Flash Player 将自动试图从该域加载策略文件。如果试图访问数据的 Flash 文档所在的域包括在该策略文件中，则数据将自动成为可访问数据。</p>
<p>策略文件必须命名为 <span class="searchhilite">crossdomain</span>.xml，并且可以驻留在<strong>服务器的根目录</strong>和其它目录之中，该服务器提供具有其它 ActionScript 的数据。只有在通过 HTTP、HTTPS 或 FTP 进行通信的服务器上，策略文件才起作用。策略文件特定于它所驻留的服务器的端口和协议。 </p>
<p>例如，位于 https://www.macromedia.com:8080/<span class="searchhilite">crossdomain</span>.xml 的策略文件只适用于在端口 8080 通过 HTTPS 对 www.macromedia.com 进行的数据加载调用。</p>
<p>此规则的例外情况是，使用 XMLSocket 对象连接到另一个域中的套接字服务器。如果是这种情况，运行于与套接字服务器所在的同一个域中端口 80 上的 HTTP 服务器必须提供该方法调用的策略文件。</p>
<p>XML 策略文件包含单个 <code>&lt;cross-domain-policy&gt;</code> 标签，该标签又包含零个或多个 <code>&lt;allow-access-from&gt;</code> 标签。每个 <code>&lt;allow-access-from&gt;</code> 标签包含一个属性 <code>domain</code>，该属性指定一个确切的 IP 地址、一个确切的域或一个通配符域（任何域）。通配符域由单个星号 (<code>*</code>)（匹配所有域和所有 IP 地址）或后接后缀的星号（只匹配那些以指定后缀结尾的域）表示。后缀必须以点开头。但是，带有后缀的通配符域可以匹配那些只包含后缀但不包含前导点的域。例如，cenfun.com 可以看作是 *.cenfun.com 的一部分。IP 域规范中不允许使用通配符。</p>
<p>如果您指定了一个 IP 地址，则将只向使用 IP 语法从该 IP 地址（例如 http://65.57.83.12/flashmovie.swf）加载的 SWF 文件授予访问权限，而不向使用域名语法加载的 SWF 文件授予访问权限。Flash Player 不执行 DNS 解析。</p>
<p>下面的示例显示一个策略文件，该策略文件允许从 cenfun.com 上的 Flash 文档访问来自 cenfun.com、www.friendOfcenfun.com、*.cenfun.com 和 105.216.0.40 的 Flash 文档：</p>
<div class="listing">
<pre>&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;!-- http://www.cenfun.com/<span class="searchhilite">crossdomain</span>.xml --&gt;
&lt;cross-domain-policy&gt;
&lt;allow-access-from domain=&quot;www.friendOfcenfun.com&quot; /&gt;
&lt;allow-access-from domain=&quot;*.cenfun.com&quot; /&gt;
&lt;allow-access-from domain=&quot;105.216.0.40&quot; /&gt;
&lt;/cross-domain-policy&gt;
</pre>
</div>
<p><font color="#0000ff">您也可以允许访问来自任何域的文档，如下面的示例所示：(<a href="http://www.cenfun.com/crossdomain.xml " target="_blank">http://www.cenfun.com/<span class="searchhilite">crossdomain</span>.xml</a> )</font></p>
<div class="listing">
<pre><font color="#0000ff">&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;!-- http://www.cenfun.com/<span class="searchhilite">crossdomain</span>.xml --&gt;
&lt;cross-domain-policy&gt;
&lt;allow-access-from domain=&quot;*&quot; /&gt;
&lt;/cross-domain-policy&gt;</font>
</pre>
</div>
<p>每个 <code>&lt;allow-access-from&gt;</code> 标签还具有可选的 <code>secure</code> 属性。<code>secure</code> 属性默认为 <code>true</code>。如果您的策略文件在 HTTPS 服务器上，并且要允许 HTTP 服务器上的 SWF 文件从 HTTPS 服务器加载数据，则可以将此属性设置为 <code>false</code>。</p>
<p>将 <code>secure</code> 属性设置为 <code>false</code> 可能会危及 HTTPS 提供的安全性。</p>
<p>如果您正在下载来自 HTTPS 服务器的 SWF 文件，而加载它的 SWF 文件在 HTTP 服务器上，则您需要为 <code>&lt;allow-access-from&gt;</code> 标签添加 <code>secure=&quot;false&quot;</code> 属性，如下面的代码所示：</p>
<div class="listing">
<pre>&lt;allow-access-from domain=&quot;www.cenfun.com&quot; secure=&quot;false&quot; /&gt;
</pre>
</div>
<p>不包含任何 <code>&lt;allow-access-from&gt;</code> 标签的策略文件相当于服务器上没有策略。<br /><br /></p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/articles/18.htm</link>
			<title><![CDATA[VBscript对ASP]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Articles]]></category>
			<pubDate>Fri,13 Jan 2006 14:32:47 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=18</guid>
		<description><![CDATA[VBscript常用函数：<br/><br/>1.数值型函数：<br/><br/>abs(num): 返回绝对值<br/>sgn(num): num&gt;0 1; num=0 0; num&lt;0 -1;判断数值正负<br/>hex(num): 返回十六进制值 直接表示：&amp;Hxx 最大8位<br/>oct(num): 返回八进制值 直接表示：&amp;Oxx 最大8位<br/>sqr(num): 返回平方根 num&gt;0<br/>int(num): 取整 int(99.8)=99; int(-99.2)=100<br/>fix(num): 取整 fix(99.8)=99; fix(-99.2)=99<br/>round(num,n): 四舍五入取小数位 round(3.14159,3)=3.142 中点数值四舍五入为近偶取整 round(3.25,1)=3.2<br/>log(num): 取以e为底的对数 num&gt;0<br/>exp(n): 取e的n次幂 通常用 num^n<br/>sin(num): 三角函数，以弧度为值计算 (角度*Pai)/180=弧度 con(num); tan(num); atn(num)<br/><br/>2.字符串函数：<br/><br/>len(str)：计算字符串长度 中文字符长度也计为一！<br/>mid(str,起始字符,[读取长度])：截取字符串中间子字符串<br/>left(str,nlen)：从左边起截取nlen长度子字符串<br/>right(str,nlen)：从右边起截取nlen长度子字符串<br/>Lcase(str)：字符串转成小写<br/>Ucase(str)：字符串转成大写<br/>trim(str)：去除字符串两端空格<br/>Ltrim(str)：去除字符串左侧空格<br/>Rtrim(str)：去除字符串右侧空格<br/>replace(str,查找字符串,替代字符串,[起始字符,替代次数,比较方法])：替换字符串 注：默认值：起始字符 1；替代次数 不限；比较方法 区分大小写（0）<br/>InStr([起始字符,]str,查找字符串[,比较方法])：检测是否包含子字符串 可选参数需同时选 返回起始位置<br/>InStrRev(str,查找字符串[,起始字符][,比较方法])：反向检测是否包含子字符串 返回起始位置<br/>space(n)：构造n个空格的字符串<br/>string(n,str)：构造由n个str第一个字符组成的字符串<br/>StrReverse(str)：反转字符串<br/>split(str,分割字符串[,次数][,比较方法])：以分割字符串为分割标志将字符串转为字符数组<br/><br/>3.数据类型转换函数：<br/>Cint(str)：转换正数 True -1；False 0；日期 距离1899/12/31天数；时间 上午段 0；下午段 1；<br/>Cstr(str)：日期 输出格式 yyyy/mm/dd；时间 输出格式 Am/Pm hh:mm:ss<br/>Clng(str)：与Cin()类似<br/>Cbool(num)：num不为零 True；反之 False<br/>Cdate(str)：转换日期格式 0：#Am 12:00:00#；正数 距离1899/12/31天数的日期；浮点数 日期＋小数时间<br/>Cbyte(num)：num&lt;255 转换为字节<br/>Csng(str)：转换为单精度数值<br/>Cdbl(str)：转换为双精度数值<br/>Ccur(str)：转换为现金格式<br/><br/>4.时间函数：<br/>date：取系统当前日期<br/>time：取系统当前时间<br/>now：取系统当前时间及日期值 Datetime类型<br/>timer：取当前时间距离零点秒值，计时器，可计算时间差<br/>DateAdd(间隔单位,间隔值,日期)：推算相邻日期<br/>DateDiff(间隔单位,日期一,日期二)：计算时间差 日期二-日期一<br/>Datepart(间隔单位,日期)：计算日期的间隔单位值<br/>Dateserial(date)：输出日期值（按序列计算）<br/>Timeserial(time)：输出时间值（按序列计算）<br/>DateValue(datetime)：取出字符串中日期值<br/>Timevalue(datetime)：取出字符串中时间值<br/>weekday(date)：计算星期几<br/>MonthName(date)：输出月分名<br/>year(datetime)：截取年份<br/>month(datetime)：截取月份<br/>day(datetime)：截取日<br/>hour(datetime)：截取小时<br/>minute(datetime)：截取分钟<br/>second(datetime)：截取秒<br/><br/>5.其它函数：<br/>Array(unit,..)：动态生成数组<br/>Asc(str)：输出字符串第一个字符的ASCII码<br/>Chr(asc)：转换ASCII为字符 Enter：Chr(13)&amp;Chr(10)<br/>Filter(数组名称,关键字符串,[,包含][,比较方法])：将字符串数组中含有关键字符串的元素存成新的数组（默认） [包含]为false则取不包含的元素<br/>Join(ArrayName)：将数组中元素连成字符串<br/>Ubound(ArrayName[,维数])：取得数组相应维数的上界<br/>Lbound(ArrayName[,维数])：取得数组相应维数的下界 一般为0<br/>Randmize n：启动随机数种子<br/>Rnd(n)：取得随机数，n&gt;0或为空，取序列下一随机值，n&lt;0，随机值相同，n=0，生产与上一随机值相同的数取介于A和B之间的随机正数C，公式：C=Int((B-A+1)*Rnd+A) 条件（B&gt;A）<br/><br/>ASP六大对象常用语句示范： <br/><br/>Response：<br/><br/>Response.write StrVar/&#34;String&#34;：向网页写出参数值或字符串 等同于在Html标记中嵌入 <br/>Response.End：停止页面编译，并将已经编译内容输出到浏览器<br/>Response.Buffer=True|False：页面编译时是否使用缓存的设置，一般在页面头部设置<br/>Response.Flush：强制输出页面已编译部分内容<br/>Response.Clear：将缓冲区内的数据清除<br/>Response.Redirect URL：停止页面编译或输出，转载指定所需页面<br/>Response.IsClientConnected：返回True|False，检测用户是否还处于连接状态<br/>Response.Charset(CharsetName)：设置页面编码类型，即<br/>Response.ContentType [= ContentType ]：设置页面文件类型，同上<br/>Response.Expires [= number]：设置页面失效时间，单位分钟<br/>Response.ExpiresAbsolute [= [date] [time]]：设置页面失效的绝对时间<br/>Response.Status = StatusDescription：设置页面状态描述<br/><br/>Request：<br/><br/>Request(&#34;PassStrName&#34;)：读取网页传递值，包括表单及以？PassStrName＝value&amp;PassStrName_n＝value_n形式<br/>Request[.collection|property|method](variable)<br/>Request.querystring(&#34;PassStrName&#34;)：读取Get方法传递的表单值和？PassStrName＝value<br/>Request.QueryString(Varible)[(Index).Count] <br/>Request.form(&#34;PassStrName&#34;)：读取Post方法传递的纯表单域的值<br/>Request.Form(Parameter)[(Index).Count]<br/>Request.ServerVaribles(Server Environment Variable)：读取客户端系统环境变量，详见参考<br/>Request.BinaryRead(Count)：读取指定字节数的传送值<br/>Request.TotalBytes：查询体的长度，以字节为单位，只读<br/><br/>注：同名表单如：CheckBox如有多项值，则传递数组.<br/><br/>Session：（用户全局变量）<br/><br/>Session(&#34;SesName&#34;)＝value：存储Session变量值，也可读取该值 <br/>Session(&#34;SesName&#34;)＝Empty：判断Session值是否存在的两种方法 <br/>IsEmpty(Session(&#34;SesName&#34;))=True|False：判断Session值是否存在的两种方法<br/>Session.TimeOut=num：设置Session变量的存在时效，单位分钟<br/>Session.Abandon：清除所有Session变量值<br/>Session.SessionID：Session变量的ID序列号，只读<br/><br/>Application：（应用程序全局变量）<br/><br/>Application(&#34;AppName&#34;)＝value：存储Application变量值，也可读取该值 <br/>Application(&#34;AppName&#34;)＝Empty：判断Application值是否存在的两种方法 <br/>IsEmpty(Application(&#34;AppName&#34;))=True|False：判断Application值是否存在的两种方法 <br/>Application.Lock：Application变量值锁定，防止同时更改变量值<br/>Application.UnLock：Application变量值解锁，允许更改变量值<br/><br/>注：Session与Application变量都可以用来存储数组和系统对象，引用方法是变量名相当于数组名而已，<br/>但不能直接改变其值，需要借助临时数组修改值后，再赋给Session与Application变量<br/><br/>Server:<br/><br/>Server.MapPath(&#34;FileUrl&#34;)：映射文件名的服务器站点绝对地址，Path=Server.MapPath(./)可以得到虚拟目录根路径<br/>Server.HtmlEncode(&#34;string&#34;)：转换为可以直接显示带Html格式的字符串，如：&lt;,&gt;等<br/>Server.URLEncode( &#34;string&#34;)：转换为浏览器地址编码<br/>set Var＝Server.CreatObject(&#34;ObjName&#34;)：创建对象变量<br/>Server.ScriptTimeout = NumSeconds：ASP程序页面执行时限，以秒为单位<br/><br/>Cookies: 存储在用户本机的临时变量，每个Cookie的最大字节4KB，最多可以有300个Cookie 1.2MB<br/><br/>Response.cookies(&#34;StrCookieName&#34;)＝value：存储Cookie变量值，也可读取该值 <br/>Response.cookies(&#34;StrCookieName&#34;)＝&#34;&#34;：判断是否为空<br/>Response.cookies(&#34;StrCookieName&#34;).Expires=Date：变量有效期，以天为单位，小于当前时间立即失效<br/>Response.Cookies(Cookie[(key).Attribute])：标准语法<br/><br/>ObjectContext 控制ASP的事务处理<br/><br/>ObjectContext.OnTransactionAbort：由放弃的事务处理事件激发，在脚本完成处理后发生<br/>ObjectContext.OnTransactionCommit：由成功的事务处理事件激发，在脚本完成处理后发生<br/>ObjectContext.SetAbort：显式的放弃一次事务处理<br/>ObjectContext.SetComplete：覆盖前面任何调用ObjectContext.SetAbort方法的调用]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/17.htm</link>
			<title><![CDATA[常用Javascript方法收集]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Tue,10 Jan 2006 17:14:28 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=17</guid>
		<description><![CDATA[<p>//去左空格;<br />function ltrim(s){<br />&nbsp;return s.replace( /^\s*/, &quot;&quot;);<br />}<br />//去右空格;<br />function rtrim(s){<br />&nbsp;return s.replace( /\s*$/, &quot;&quot;);<br />}<br />//左右空格;<br />function trim(s){<br />&nbsp;return rtrim(ltrim(s));<br />}<br />//替换<br />function replace(s, t, u) {<br />&nbsp;&nbsp; i = s.indexOf(t);<br />&nbsp;&nbsp; r = &quot;&quot;;<br />&nbsp;&nbsp; if (i == -1) return s;<br />&nbsp;&nbsp; r += s.substring(0,i) + u;<br />&nbsp;&nbsp; if ( i + t.length &lt; s.length)<br />&nbsp;&nbsp;&nbsp;&nbsp; r += replace(s.substring(i + t.length, s.length), t, u);<br />&nbsp;&nbsp; return r;<br />}<br />//检查非法字符<br />//str 要检查的字符<br />//badwords 非法字符 &amp;|&lt;&gt;=<br />function checkbadwords(str, badwords) {<br />&nbsp;if (typeof (str) != &quot;string&quot; || typeof (badwords) != &quot;string&quot;) {<br />&nbsp;&nbsp;return (false);<br />&nbsp;}<br />&nbsp;for (i=0; i&lt;badwords.length; i++) {<br />&nbsp;&nbsp;bad = badwords.charAt(i);<br />&nbsp;&nbsp;for (j=0; j&lt;str.length; j++) {<br />&nbsp;&nbsp;&nbsp;if (bad == str.charAt(j)) {<br />&nbsp;&nbsp;&nbsp;&nbsp;return false;<br />&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;}<br />&nbsp;}<br />&nbsp;return true;<br />}<br />//检查合法字符,限制只能输入的字符<br />//str 要检查的字符<br />//goodwords 合法字符 1234567890abcdefghijklmnopqrstuvwxyz<br />function checkgoodwords(str, goodwords) {<br />&nbsp;if (typeof (str) != &quot;string&quot; || typeof (goodwords) != &quot;string&quot;) {<br />&nbsp;&nbsp;return (false);<br />&nbsp;}<br />&nbsp;for (i=0; i&lt;str.length; i++) {<br />&nbsp;&nbsp;this_str = str.charAt(i);<br />&nbsp;&nbsp;for (j=0; j&lt;goodwords.length; j++) {<br />&nbsp;&nbsp;&nbsp;if (this_str == goodwords.charAt(j)) {<br />&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;if(j==goodwords.length-1){<br />&nbsp;&nbsp;&nbsp;&nbsp;return false;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;}<br />&nbsp;}<br />&nbsp;return true;<br />}<br />//函 数 名：chkinteger<br />//功能介绍：检查是否为数字<br />//参数说明：要检查的字符串<br />//返 回 值：false:不是&nbsp; true:是<br />function chkinteger(checkStr) {<br />&nbsp;var checkOK = &quot;0123456789+-&quot;;<br />&nbsp;var allValid = true;<br />&nbsp;for (i=0; i&lt;checkStr.length; i++) {<br />&nbsp;&nbsp;ch = checkStr.charAt(i);<br />&nbsp;&nbsp;if (checkOK.indexOf(ch) == -1) {<br />&nbsp;&nbsp;&nbsp;allValid = false;<br />&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;if ((ch == '+' || ch == '-') &amp;&amp; i&gt;0) {<br />&nbsp;&nbsp;&nbsp;allValid = false;<br />&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;}<br />&nbsp;}<br />&nbsp;return (allValid);<br />}<br />//函 数 名：chklength<br />//功能介绍：检查字符串的长度<br />//参数说明：要检查的字符串<br />//返 回 值：字节长度值<br />function chklength(checkStr) {<br />&nbsp;var n = 0;<br />&nbsp;for (i=0; i&lt;checkStr.length; i++) {<br />&nbsp;&nbsp;chcode = checkStr.charCodeAt(i);<br />&nbsp;&nbsp;if (chcode&gt;=0 &amp;&amp; chcode&lt;=255) {<br />&nbsp;&nbsp;&nbsp;n++;<br />&nbsp;&nbsp;} else {<br />&nbsp;&nbsp;&nbsp;n += 2;<br />&nbsp;&nbsp;}<br />&nbsp;}<br />&nbsp;return (n);<br />}<br />//复选框全选和不全选<br />//使用方法：<br />//&lt;input name=&quot;chkAll&quot; type=&quot;checkbox&quot; id=&quot;chkAll&quot; onclick=CheckAll(this.form) value=&quot;checkbox&quot;&gt;<br />function unselectall()<br />{<br />&nbsp;&nbsp;&nbsp; if(document.myform.chkAll.checked){<br />&nbsp;document.myform.chkAll.checked = document.myform.chkAll.checked&amp;0;<br />&nbsp;&nbsp;&nbsp; } &nbsp;<br />}<br />function CheckAll(form)<br />&nbsp; {<br />&nbsp; for (var i=0;i&lt;form.elements.length;i++)<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp; var e = form.elements[i];<br />&nbsp;&nbsp;&nbsp; if (e.Name != &quot;chkAll&quot;&amp;&amp;e.disabled==false)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.checked = form.chkAll.checked;<br />&nbsp;&nbsp;&nbsp; }<br />}<br />//check date<br />//return: 1,days&nbsp; 2,false<br />//2005-12-19&nbsp;&nbsp; 2005-12-29<br />function checkdate(start_date,end_date){<br />&nbsp;//alert(&quot;start_date:[&quot;+start_date+&quot;] end_date:[&quot;+end_date+&quot;]&quot;);<br />&nbsp;//isnull<br />&nbsp;if(start_date==&quot;&quot; || end_date==&quot;&quot;){<br />&nbsp;&nbsp;//alert(&quot;false&quot;);<br />&nbsp;&nbsp;return false;<br />&nbsp;}<br />&nbsp;var strSeparator = &quot;-&quot;; //split symbol<br />&nbsp;//is-<br />&nbsp;if(start_date.charAt(4)!=strSeparator &amp;&amp; start_date.charAt(7)!=strSeparator &amp;&amp; end_date.charAt(4)!=strSeparator &amp;&amp; end_date.charAt(7)!=strSeparator){<br />&nbsp;&nbsp;//alert(start_date.charAt(7));<br />&nbsp;&nbsp;return false;<br />&nbsp;}<br />&nbsp;var strDateArrayStart;<br />&nbsp;var strDateArrayEnd;<br />&nbsp;strDateArrayStart = start_date.split(strSeparator);<br />&nbsp;strDateArrayEnd = end_date.split(strSeparator);<br />&nbsp;var strDateS = new Date(strDateArrayStart[0] + &quot;/&quot; + strDateArrayStart[1] + &quot;/&quot; + strDateArrayStart[2]);<br />&nbsp;var strDateE = new Date(strDateArrayEnd[0] + &quot;/&quot; + strDateArrayEnd[1] + &quot;/&quot; + strDateArrayEnd[2]);<br />&nbsp;//check date<br />&nbsp;var intDay;<br />&nbsp;intDay = (strDateE-strDateS)/(1000*3600*24);<br />&nbsp;//alert(intDay);<br />&nbsp;return intDay;<br />}<br />//checkdate_month<br />//return: 1,true&nbsp; 2,false<br />//2005-12-19&nbsp;&nbsp; 2005-12-29<br />//month: number<br />function checkdate_month(start_date,end_date,month){<br />&nbsp;//alert(&quot;start_date:[&quot;+start_date+&quot;] end_date:[&quot;+end_date+&quot;]&quot;);<br />&nbsp;//isnull<br />&nbsp;if(start_date==&quot;&quot; || end_date==&quot;&quot; || month==&quot;&quot;){<br />&nbsp;&nbsp;//alert(&quot;false&quot;);<br />&nbsp;&nbsp;return false;<br />&nbsp;}<br />&nbsp;var strSeparator = &quot;-&quot;; //split symbol<br />&nbsp;//is-<br />&nbsp;if(start_date.charAt(4)!=strSeparator &amp;&amp; start_date.charAt(7)!=strSeparator &amp;&amp; end_date.charAt(4)!=strSeparator &amp;&amp; end_date.charAt(7)!=strSeparator){<br />&nbsp;&nbsp;//alert(start_date.charAt(7));<br />&nbsp;&nbsp;return false;<br />&nbsp;}<br />&nbsp;var strDateArrayStart;<br />&nbsp;var strDateArrayEnd;<br />&nbsp;strDateArrayStart = start_date.split(strSeparator);<br />&nbsp;strDateArrayEnd = end_date.split(strSeparator);<br />&nbsp;var strDateS = new Date(strDateArrayStart[0] + &quot;/&quot; + strDateArrayStart[1] + &quot;/&quot; + strDateArrayStart[2]);<br />&nbsp;var strDateE = new Date(strDateArrayEnd[0] + &quot;/&quot; + strDateArrayEnd[1] + &quot;/&quot; + strDateArrayEnd[2]);<br />&nbsp;//check date<br />&nbsp;var intDay;<br />&nbsp;intDay = (strDateE-strDateS)/(1000*3600*24);<br />&nbsp;//alert(intDay);<br />&nbsp;var intMonth = intDay/30;<br />&nbsp;if(intMonth&gt;month){<br />&nbsp;&nbsp;return false;<br />&nbsp;}<br />&nbsp;return true;<br />}</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/articles/16.htm</link>
			<title><![CDATA[Merry Christmas! Happy New Year!]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Articles]]></category>
			<pubDate>Wed,21 Dec 2005 13:50:48 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=16</guid>
		<description><![CDATA[<p>尺寸：537X400 引用地址：<a href="http://www.cenfun.com/flash/christmas.swf" target="_blank">http://www.cenfun.com/flash/christmas.swf</a><br /><embed src="http://www.cenfun.com/flash/christmas.swf" width="537" height="400" type="application/x-shockwave-flash"></embed><br /><br />尺寸：450X300 引用地址：<a href="http://www.cenfun.com/flash/newyear.swf" target="_blank">http://www.cenfun.com/flash/newyear.swf</a><br /><embed src="http://www.cenfun.com/flash/newyear.swf" width="450" height="300" type="application/x-shockwave-flash"></embed><br /><br /><br />预祝大家圣诞、新年快乐！</p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/cmp/14.htm</link>
			<title><![CDATA[新做的cfplay UI]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[CMP]]></category>
			<pubDate>Wed,30 Nov 2005 00:58:50 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=14</guid>
		<description><![CDATA[<p>cfplay UI orange版：<br /><img alt="" src="http://www.cenfun.com/blog/attachments/month_0511/92005113005747.jpg" /><br />cfplay UI blue版：<br /><img alt="" src="http://www.cenfun.com/blog/attachments/month_0511/52005113005822.jpg" /></p>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/11.htm</link>
			<title><![CDATA[Javascript之cookie篇]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Tue,15 Nov 2005 21:10:55 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=11</guid>
		<description><![CDATA[function saveCookie(name, value, expires, path, domain, secure) {<br/>&#160;&#160;&#160;&#160;var strCookie = name+&#34;=&#34;+value;<br/>&#160;&#160;&#160;&#160;if (expires) {<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;var curTime = new Date();<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;curTime.setTime(curTime.getTime()+expires*24*60*60*1000);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;strCookie += &#34;; expires=&#34;+curTime.toGMTString();<br/>&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;strCookie += (path) ? &#34;; path=&#34;+path : &#34;&#34;;<br/>&#160;&#160;&#160;&#160;strCookie += (domain) ? &#34;; domain=&#34;+domain : &#34;&#34;;<br/>&#160;&#160;&#160;&#160;strCookie += (secure) ? &#34;; secure&#34; : &#34;&#34;;<br/>&#160;&#160;&#160;&#160;document.cookie = strCookie;<br/>}<br/>function getCookie(name) {<br/>&#160;&#160;&#160;&#160;var strCookies = document.cookie;<br/>&#160;&#160;&#160;&#160;var cookieName = name+&#34;=&#34;;<br/>&#160;&#160;&#160;&#160;valueBegin = strCookies.indexOf(cookieName);<br/>&#160;&#160;&#160;&#160;if (valueBegin == -1) {<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return null;<br/>&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;valueEnd = strCookies.indexOf(&#34;;&#34;, valueBegin);<br/>&#160;&#160;&#160;&#160;if (valueEnd == -1) {<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;valueEnd = strCookies.length;<br/>&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;value = strCookies.substring(valueBegin+cookieName.length, valueEnd);<br/>&#160;&#160;&#160;&#160;return value;<br/>}<br/>function checkCookieExist(name) {<br/>&#160;&#160;&#160;&#160;if (getCookie(name)) {<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return true;<br/>&#160;&#160;&#160;&#160;} else {<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return false;<br/>&#160;&#160;&#160;&#160;}<br/>}<br/>function del&#101;teCookie(name, path, domain) {<br/>&#160;&#160;&#160;&#160;var strCookie;<br/>&#160;&#160;&#160;&#160;if (checkCookieExist(name)) {<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;strCookie = name+&#34;=&#34;;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;strCookie += (path) ? &#34;; path=&#34;+path : &#34;&#34;;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;strCookie += (domain) ? &#34;; domain=&#34;+domain : &#34;&#34;;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;strCookie += &#34;; expires=Thu, 01-Jan-70 00:00:01 GMT&#34;;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;document.cookie = strCookie;<br/>&#160;&#160;&#160;&#160;}<br/>}]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/articles/9.htm</link>
			<title><![CDATA[我的redhat 8.0 安装成功经验谈]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Articles]]></category>
			<pubDate>Tue,15 Nov 2005 21:04:48 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=9</guid>
		<description><![CDATA[<div>
<div>1&gt;从网上下载Redhat8.0的.iso安装文件共三个。并放在同一文件夹中(比如windows分区D盘redhat目录下). <br />psyche-i386-disc1.iso<br />psyche-i386-disc2.iso<br />psyche-i386-disc3.iso<br />2&gt;下载WinMD5.exe(自己找吧)检测3个文件.检测后代码为:<br />d7b16b081c20708dc0dd7d41793a4177 psyche-i386-disc1.iso<br />2df17bc02cb1b3316930ed4f7601ad9e psyche-i386-disc2.iso<br />305d6ff5b5850fa316276710a148b0a3 psyche-i386-disc3.iso<br />3&gt;用WinISO，或者WinRar等软件解开第一张盘的.iso文件，只释放dosutils文件夹(比如放到d:\redhat下)。 <br />4&gt;进入纯MS-DOS下，打开d:\redhat\dosutils文件夹,运行autoboot.bat<br />5&gt;根据提示，选择从硬盘安装(依上，就应选择/hda5 在路径栏填写/redhat/). <br />6&gt;接下来您就进入了Redhat8.0的安装界面了。<br />7&gt;至此,应该没什么问题了.(我觉得最难的还是设置显示器,我至今还没做到最佳设置),待续.</div>
<div>&nbsp;</div>
<div><a name="post46076"><font color="#ff0000">发帖时间:</font></a><font color="#ff0000"> </font>02-10-07, 05:21 </div>
<div><a href="http://www.linuxsir.org/bbs/showthread.php?t=8627"><font color="#e59167">http://www.linuxsir.org/bbs/showthread.php?t=8627</font></a></div>
<div>几年前发表的!</div>
</div>]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/flash/6.htm</link>
			<title><![CDATA[Flash Mp3播放器中写的Lrc歌词解析函数]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Flash]]></category>
			<pubDate>Tue,15 Nov 2005 20:43:19 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=6</guid>
		<description><![CDATA[function initLRC() {<br />&nbsp;//Split Array<br />&nbsp;//trace(myLRC);<br />&nbsp;var line_num = -1;<br />&nbsp;var Lineinfo_arr, tag_arr, Time_arr;<br />&nbsp;Lineinfo_arr = myLRC.split(&quot;\r\n&quot;);<br />&nbsp;for (i=0; i&lt;Lineinfo_arr.length; i++) {<br />&nbsp;&nbsp;if (Lineinfo_arr[i] != &quot;&quot;) {<br />&nbsp;&nbsp;&nbsp;//[00:18.55]<br />&nbsp;&nbsp;&nbsp;//[00:18.55]测试测试测试测试测试<br />&nbsp;&nbsp;&nbsp;//[01:50.93][00:18.55][00:18.55]测试测试测试测试测试<br />&nbsp;&nbsp;&nbsp;//时间标记情况<br />&nbsp;&nbsp;&nbsp;if (Lineinfo_arr[i].charAt(0) == &quot;[&quot; and !isNaN(Number(Lineinfo_arr[i].charAt(1))) and !isNaN(Number(Lineinfo_arr[i].charAt(2)))) {<br />&nbsp;&nbsp;&nbsp;&nbsp;//每行切成标记数组<br />&nbsp;&nbsp;&nbsp;&nbsp;//trace(&quot;##&quot;+Lineinfo_arr[i]);<br />&nbsp;&nbsp;&nbsp;&nbsp;tag_arr = Lineinfo_arr[i].split(&quot;]&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;//过滤[]<br />&nbsp;&nbsp;&nbsp;&nbsp;for (j=0; j&lt;tag_arr.length; j++) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (tag_arr[j].charAt(0) == &quot;[&quot;) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tag_arr[j] = tag_arr[j].substr(1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;//分配值。<br />&nbsp;&nbsp;&nbsp;&nbsp;//00:18.55, <br />&nbsp;&nbsp;&nbsp;&nbsp;//00:18.55, 测试测试测试测试测试<br />&nbsp;&nbsp;&nbsp;&nbsp;//01:50.93, 00:18.55, 00:18.55, 测试测试测试测试测试<br />&nbsp;&nbsp;&nbsp;&nbsp;for (k=0; k&lt;tag_arr.length-1; k++) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//换算时间<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//trace(tag_arr[k]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Time_arr = tag_arr[k].split(&quot;:&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var Time_all = 0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (!isNaN(Time_arr[0])) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Time_all = Time_all+Number(Time_arr[0])*60;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (!isNaN(Time_arr[1])) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Time_all = Time_all+Number(Time_arr[1]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line_num++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lrcData.timer[line_num] = Time_all;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lrcData.info[line_num] = tag_arr[tag_arr.length-1];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//trace(lrcData.timer[line_num]+&quot; - &quot;+lrcData.info[line_num]);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;} else {<br />&nbsp;&nbsp;&nbsp;&nbsp;//[ti:Pretty Boy][ar:M2M]<br />&nbsp;&nbsp;&nbsp;&nbsp;//[al:Shades Of Purple]<br />&nbsp;&nbsp;&nbsp;&nbsp;//[by:gby]<br />&nbsp;&nbsp;&nbsp;&nbsp;//[offset:500]<br />&nbsp;&nbsp;&nbsp;&nbsp;//[askdk]<br />&nbsp;&nbsp;&nbsp;&nbsp;//特殊标记情况<br />&nbsp;&nbsp;&nbsp;&nbsp;tag_arr = Lineinfo_arr[i].split(&quot;:&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;tag_arr[1] = tag_arr[1].slice(0, tag_arr[1].indexOf(&quot;]&quot;));<br />&nbsp;&nbsp;&nbsp;&nbsp;if (tag_arr[0] == &quot;[offset&quot;) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;offset = tag_arr[1];<br />&nbsp;&nbsp;&nbsp;&nbsp;} else {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;offset = 0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line_num++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lrcData.timer[line_num] = 0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (tag_arr[0] == &quot;[ti&quot;) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lrcData.info[line_num] = &quot;歌曲：&quot;+tag_arr[1];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} else if (tag_arr[0] == &quot;[ar&quot;) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lrcData.info[line_num] = &quot;艺人：&quot;+tag_arr[1];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} else if (tag_arr[0] == &quot;[al&quot;) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lrcData.info[line_num] = &quot;专辑：&quot;+tag_arr[1];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} else if (tag_arr[0] == &quot;[by&quot;) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lrcData.info[line_num] = &quot;制作：&quot;+tag_arr[1];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} else if (tag_arr[0].indexOf(&quot;[&quot;) == 0) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lrcData.timer[line_num] = lrcData.timer[line_num-1]+0.01;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lrcData.info[line_num] = &quot;制作：CenFun&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} else {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//其它字符<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//其他标记情况<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lrcData.timer[line_num] = lrcData.timer[line_num-1]+0.01;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lrcData.info[line_num] = Lineinfo_arr[i];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//trace(lrcData.timer[line_num]+&quot; - &quot;+lrcData.info[line_num]);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;}<br />&nbsp;}<br />}<br />//end initLRC]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/scripts/10.htm</link>
			<title><![CDATA[幻灯片Javascript类for IE]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Scripts]]></category>
			<pubDate>Sun,13 Nov 2005 21:06:40 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=10</guid>
		<description><![CDATA[&lt;html&gt;<br />&lt;head&gt;<br />&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=gb2312&quot;&gt;<br />&lt;title&gt;&lt;/title&gt;<br />&lt;script language=&quot;JavaScript&quot;&gt;<br />var bannerAD = new Array();<br />var bannerADlink = new Array();<br />var adNum = -1;<br />bannerAD[0] = &quot;p0.JPG&quot;;bannerADlink[0] = &quot;url0&quot;;<br />bannerAD[1] = &quot;p1.JPG&quot;;bannerADlink[1] = &quot;url1&quot;;<br />bannerAD[2] = &quot;p2.JPG&quot;;bannerADlink[2] = &quot;url2&quot;;<br />bannerAD[3] = &quot;p3.JPG&quot;;bannerADlink[3] = &quot;url3&quot;;<br />bannerAD[4] = &quot;p4.JPG&quot;;bannerADlink[4] = &quot;url4&quot;;<br />bannerAD[5] = &quot;p5.JPG&quot;;bannerADlink[5] = &quot;url5&quot;;<br />bannerAD[6] = &quot;p6.JPG&quot;;bannerADlink[6] = &quot;url6&quot;;<br />bannerAD[7] = &quot;p7.JPG&quot;;bannerADlink[7] = &quot;url7&quot;;<br />bannerAD[8] = &quot;p8.JPG&quot;;bannerADlink[8] = &quot;url8&quot;;<br />bannerAD[9] = &quot;p9.JPG&quot;;bannerADlink[9] = &quot;url9&quot;;<br />var preloadedimages = new Array();<br />for (i=0; i&lt;10; i++) {<br />&nbsp;preloadedimages[i] = new Image();<br />&nbsp;preloadedimages[i].src = bannerAD[i];<br />}<br />function setTransition() {<br />&nbsp;if (document.all) {<br />&nbsp;&nbsp;bannerADrotator.filters.revealTrans.Transition = Math.floor(Math.random()*23);<br />&nbsp;&nbsp;bannerADrotator.filters.revealTrans.apply();<br />&nbsp;}<br />}<br />function playTransition() {<br />&nbsp;if (document.all) {<br />&nbsp;&nbsp;bannerADrotator.filters.revealTrans.play();<br />&nbsp;}<br />}<br />function nextAd() {<br />&nbsp;if (adNum&lt;bannerAD.length-1) {<br />&nbsp;&nbsp;adNum++;<br />&nbsp;} else {<br />&nbsp;&nbsp;adNum = 0;<br />&nbsp;}<br />&nbsp;setTransition();<br />&nbsp;document.images.bannerADrotator.src = bannerAD[adNum];<br />&nbsp;playTransition();<br />&nbsp;theTimer = setTimeout(&quot;nextAd()&quot;, 3000);<br />}<br />function jump2url() {<br />&nbsp;jumpUrl = bannerADlink[adNum];<br />&nbsp;jumpTarget = '_blank';<br />&nbsp;if (jumpUrl != '') {<br />&nbsp;&nbsp;if (jumpTarget != '') {<br />&nbsp;&nbsp;&nbsp;window.open(jumpUrl, jumpTarget);<br />&nbsp;&nbsp;} else {<br />&nbsp;&nbsp;&nbsp;location.href = jumpUrl;<br />&nbsp;&nbsp;}<br />&nbsp;}<br />}<br />function displayStatusMsg() {<br />&nbsp;status = bannerADlink[adNum];<br />&nbsp;document.returnValue = true;<br />}<br />&lt;/script&gt;<br />&lt;/head&gt;<br />&lt;body topmargin=&quot;0&quot; leftmargin=&quot;0&quot;&gt;<br />&lt;center&gt;<br />&nbsp; &lt;a href=&quot;javascript:jump2url();&quot;&gt;&lt;img style=&quot;filter: revealTrans(duration=2, transition=20)&quot; src=&quot;javascript:nextAd()&quot; border=&quot;0&quot; name=&quot;bannerADrotator&quot;&gt;&lt;/a&gt;<br />&lt;/center&gt;<br />&lt;/body&gt;<br />&lt;/html&gt;<br />]]></description>
		</item>
		
			<item>
			<link>http://www.cenfun.com/blog/article/articles/1.htm</link>
			<title><![CDATA[庆祝本站博客开通]]></title>
			<author>cenfun@gmail.com(cenfun)</author>
			<category><![CDATA[Articles]]></category>
			<pubDate>Sat,12 Nov 2005 17:42:03 +0800</pubDate>
			<guid>http://www.cenfun.com/blog/default.asp?id=1</guid>
		<description><![CDATA[<p>经过一晚上的艰苦奋斗，本站博客终于开通，欢迎大家来访！当前采用PJBlog2。<br />本站LOGO：<br /><a href="http://www.cenfun.com/" target="_blank"><img height="31" alt="CenFun" src="http://www.cenfun.com/logo.gif" width="88" border="0" /></a><br />CenFun Clock：</p>
<p><object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" height="200" width="100%" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">
<param value="transparent" name="wmode" />
<param value="../flash/cfclock.swf" name="movie" />
<param value="high" name="quality" /></object></p>]]></description>
		</item>
		
</channel>
</rss>
