<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[X-Intend[超级打算]]]></title>
<link>http://www.xintend.com</link>
<description><![CDATA[每个人都有自己的想法,哪怕仅仅一瞬间~！]]></description>
<pubDate>2008-11-20 16:44:05Z</pubDate>
<item>
<title><![CDATA[Flash 平台.....(Flash Platform)]]></title>
<link>http://www.xintend.com/Article/LVDqAsSRRwrZOaFxtaxx.aspx</link>
<category><![CDATA[新闻]]></category>
<author>KingFo</author>
<pubDate>2008-11-18 20:02:47Z</pubDate>
<description><![CDATA[<p>虽然Adobe公司重新定义了新的名词，如题，但是N多人还是会认为<br />
Flex是Flex&nbsp;&nbsp; Flash 是Flash<br />
大多数人员还是认为 Flash 就是动画......</p>
<p>既然如此，那我也尽份宣传之力吧。<br />
下面这张图整个就是Flash Platform！</p>
<p><img alt="" src="/Attach/200811/633626356558593750_modal_01.png" /></p>]]></description>
</item>
<item>
<title><![CDATA[用户体验模型]]></title>
<link>http://www.xintend.com/Article/NrrRQUrujUVChxQzOFDN.aspx</link>
<category><![CDATA[常识]]></category>
<author>KingFo</author>
<pubDate>2008-11-18 14:20:26Z</pubDate>
<description><![CDATA[<p>今天我从火星来到地球发现好模型，分享下~~ 虽然我来自火星~~~</p>
<p><img alt="" src="/Attach/200811/633626149454531250_honeycomb.jpg" /></p>]]></description>
</item>
<item>
<title><![CDATA[[置顶]回答:为什么我的文章几乎没有实例程序]]></title>
<link>http://www.xintend.com/Article/dLSiMHOBvEczjaJPukvU.aspx</link>
<category><![CDATA[公告]]></category>
<author>KingFo</author>
<pubDate>2008-11-17 09:28:04Z</pubDate>
<description><![CDATA[<p>在这里回答下吧，因为本人的Blog数据库被彻底的无法挽回过<img alt="" src="/Common/Editor/FCKeditor/editor/images/smiley/22.gif" />，因此现在时刻备份数据库了,但由于如果添加实例程序的话会加大备份时间长度..........因此本人一般只贴完整代码，而不放出实例的原因了.......甚至原始文件都很少放..................<img alt="" src="/Common/Editor/FCKeditor/editor/images/smiley/39.gif" /></p>
<p>当然，现在我会尽量的多释放些原文件和实例了~~ <img alt="" src="/Common/Editor/FCKeditor/editor/images/smiley/7.gif" /></p>
<p>如果您有需要相关的内容代码，可以留下您的Email~~~<br />
或者 Email 我咯~~~</p>]]></description>
</item>
<item>
<title><![CDATA[[原]APNGDecoder---AS3实现进行中]]></title>
<link>http://www.xintend.com/Article/dwQnKXMBxRcFznQBDvli.aspx</link>
<category><![CDATA[开发者]]></category>
<author>KingFo</author>
<pubDate>2008-11-16 23:12:17Z</pubDate>
<description><![CDATA[<p>目前进度50%</p>
<p>已完成数据解码和校验~~~~ 不过目前还是体力活~~~</p>
<p>接下来是还原图片。。。。。。哎，周末结束了.............真不知道我下次有时间是什么时候了。。</p>
<p>以下是测试代码，工程截图............. 哦 对了，这个所谓的 1455049.png就是前篇博文：<a href="http://www.xintend.com/Article/LRptPVzHuLwcuLIASBfG.aspx"><u><strong>APNG?</strong></u></a><br />
中插入图片，我之所以写这段解码器目的其实只是想让IE也能预览APNG而已........哎.....<br />
不知道哪位同学有APNG解码器的代码呢？有的话可以告诉我声哦~~~</p>
<pre><ol class="dp-c"><li class="alt"><span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">function</span><span>&nbsp;Main():</span><span class="keyword">void</span><span>&nbsp;{ &nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">var</span><span>&nbsp;l:URLLoader&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;URLLoader(); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;l.dataFormat&nbsp;=&nbsp;URLLoaderDataFormat.BINARY; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;l.addEventListener(Event.COMPLETE,&nbsp;handleURLloader); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;l.load(</span><span class="keyword">new</span><span>&nbsp;URLRequest(</span><span class="string">&quot;../image/1455049.png&quot;</span><span>)); &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;</span><span class="keyword">function</span><span>&nbsp;handleURLloader(e:Event):</span><span class="keyword">void</span><span>&nbsp;{ &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;apngdecoder.decode(e.target.data) &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;trace(apngdecoder.getResult().getTotalFrames()) &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;trace(apngdecoder.getResult().getWidth()) &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;trace(apngdecoder.getResult().getWidth()) &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;trace(apngdecoder.getResult().getBitDepth()) &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span></li></ol></pre>
<p>&nbsp;<a target="_blank" href="/Attach/200811/633624745814843750_te.JPG"><img height="600" width="800" align="middle" border="0" alt="" src="/Attach/200811/633624745814843750_te.JPG" /></a></p></p>]]></description>
</item>
<item>
<title><![CDATA[[原]CRC32校验类AS3实现]]></title>
<link>http://www.xintend.com/Article/OlNSIpljiNIAJmEcfhBy.aspx</link>
<category><![CDATA[开发者]]></category>
<author>KingFo</author>
<pubDate>2008-11-15 15:32:28Z</pubDate>
<description><![CDATA[<p>因为需要用到CRC32的算法，所以改写了下原来as3corelib 的 CRC算法，单独提出来作为一个类，当然您也可以 搜索 &quot;Sample Cyclic Redundancy Code implementation&quot; 找到 ISO C <a href="http://www.w3.org/TR/PNG/#2-ISO-9899"><span class="NormRef">[ISO-9899]</span></a>&nbsp;的C语言描述。<br />
下面我都会帖出:</p>
<p><u><strong>本人的类:<br />
</strong></u></p>
<pre><ol class="dp-c"><li class="alt"><span><span class="keyword">package</span><span>&nbsp;&nbsp;{ &nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">import</span><span>&nbsp;flash.utils.ByteArray; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/** </span>&nbsp;</li><li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;CRC&nbsp;32位&nbsp;校验类 </span>&nbsp;</span></li><li><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;与JAVA的CRC32类似 </span>&nbsp;</span></li><li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;算法参考自&nbsp;as3corelib&nbsp;http://code.google.com/p/as3corelib/&nbsp;&nbsp; </span>&nbsp;</span></li><li><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;的&nbsp;PNGEncoder.as&nbsp;中CRC算法部分 </span>&nbsp;</span></li><li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@author&nbsp;Telds[KingFo] </span>&nbsp;</span></li><li><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@version&nbsp;0.0.1 </span>&nbsp;</span></li><li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@example </span>&nbsp;</span></li><li><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;var&nbsp;bytes:ByteArray&nbsp;=&nbsp;new&nbsp;ByteArray(); </span>&nbsp;</span></li><li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;var&nbsp;crc32:CRC32&nbsp;=&nbsp;new&nbsp;CRC32(); </span>&nbsp;</span></li><li><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;var&nbsp;str:String=&quot;kingfo&quot;; </span>&nbsp;</span></li><li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;bytes.writeUTFBytes(str); </span>&nbsp;</span></li><li><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;crc32.update(bytes); </span>&nbsp;</span></li><li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;trace(crc32); </span>&nbsp;</span></li><li><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span><span>&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">class</span><span>&nbsp;CRC32&nbsp;{ &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;</span><span class="keyword">const</span><span>&nbsp;POLYNOMIAL:uint&nbsp;=&nbsp;0xEDB88320; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/** </span>&nbsp;</li><li><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;创建获取CRC表 </span>&nbsp;</span></li><li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return </span>&nbsp;</span></li><li><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span><span>&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;</span><span class="keyword">function</span><span>&nbsp;getCrcTable():Array&nbsp;{ &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/*&nbsp;Make&nbsp;the&nbsp;table&nbsp;for&nbsp;a&nbsp;fast&nbsp;CRC.&nbsp;*/</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>&nbsp;(!crcTableComputed)&nbsp;{ &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;crcTable&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;Array(256); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">var</span><span>&nbsp;c:uint; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">for</span><span>&nbsp;(</span><span class="keyword">var</span><span>&nbsp;i:uint=0;&nbsp;i&nbsp;&lt;&nbsp;256;&nbsp;i++)&nbsp;{ &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c&nbsp;=&nbsp;i; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">for</span><span>&nbsp;(</span><span class="keyword">var</span><span>&nbsp;j:uint=0;&nbsp;j&nbsp;&lt;&nbsp;8;&nbsp;j++)&nbsp;{ &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c&nbsp;=&nbsp;(c&nbsp;&amp;&nbsp;1)&nbsp;?&nbsp;(c&nbsp;&gt;&gt;&gt;&nbsp;1)&nbsp;^&nbsp;POLYNOMIAL&nbsp;:&nbsp;(c&nbsp;&gt;&gt;&gt;&nbsp;1); &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;crcTable[i]&nbsp;=&nbsp;c; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;crcTableComputed&nbsp;=&nbsp;</span><span class="keyword">true</span><span>; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;crcTable; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/** </span>&nbsp;</li><li><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;构造函数，实例化同时产生CRC表 </span>&nbsp;</span></li><li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span><span>&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">function</span><span>&nbsp;CRC32()&nbsp;{ &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getCrcTable(); &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/** </span>&nbsp;</li><li><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;更新CRC </span>&nbsp;</span></li><li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;&nbsp;&nbsp;bytes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;指定更新的字节流 </span>&nbsp;</span></li><li><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;&nbsp;&nbsp;offset&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;偏移量，默认从&nbsp;bytes.position=0&nbsp;开始 </span>&nbsp;</span></li><li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;&nbsp;&nbsp;length&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;长度,默认为0，即指定更新的字节流的长度&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&nbsp;</span></li><li><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span><span>&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">function</span><span>&nbsp;update(bytes:ByteArray,&nbsp;offset:</span><span class="keyword">int</span><span>=0,length:</span><span class="keyword">int</span><span>=0):</span><span class="keyword">void</span><span>&nbsp;{ &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;length&nbsp;=&nbsp;length&nbsp;&gt;&nbsp;0&nbsp;?&nbsp;length&nbsp;:&nbsp;bytes.length; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">var</span><span>&nbsp;c:uint&nbsp;=&nbsp;~value; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">for</span><span>&nbsp;(</span><span class="keyword">var</span><span>&nbsp;i:</span><span class="keyword">int</span><span>&nbsp;=&nbsp;offset;&nbsp;i&nbsp;&lt;&nbsp;length;&nbsp;i++)&nbsp;{ &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c&nbsp;=&nbsp;crcTable[(c&nbsp;^&nbsp;bytes[i])&nbsp;&amp;&nbsp;0xFF]&nbsp;^&nbsp;(c&nbsp;&gt;&gt;&gt;&nbsp;8); &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value&nbsp;=&nbsp;~c; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/** </span>&nbsp;</li><li><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;获取结果 </span>&nbsp;</span></li><li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return </span>&nbsp;</span></li><li><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span><span>&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">function</span><span>&nbsp;getValue():uint&nbsp;{ &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;value&nbsp;&amp;&nbsp;0xFFFFFFFF; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/** </span>&nbsp;</li><li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;重置结果 </span>&nbsp;</span></li><li><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span><span>&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">function</span><span>&nbsp;reset():</span><span class="keyword">void</span><span>&nbsp;{ &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value&nbsp;=&nbsp;0x00000000; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">function</span><span>&nbsp;toString():String&nbsp;{ &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">var</span><span>&nbsp;v:uint&nbsp;=&nbsp;getValue(); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;</span><span class="string">&quot;0x&quot;</span><span>+v.toString(16).toUpperCase(); &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;</span><span class="keyword">var</span><span>&nbsp;value:uint&nbsp;=&nbsp;0x00000000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/*&nbsp;Table&nbsp;of&nbsp;CRCs&nbsp;of&nbsp;all&nbsp;8-bit&nbsp;messages.&nbsp;*/</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;</span><span class="keyword">var</span><span>&nbsp;crcTable:Array; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/*&nbsp;Flag:&nbsp;has&nbsp;the&nbsp;table&nbsp;been&nbsp;computed?&nbsp;Initially&nbsp;false.&nbsp;*/</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;</span><span class="keyword">var</span><span>&nbsp;crcTableComputed:Boolean&nbsp;=&nbsp;</span><span class="keyword">false</span><span>; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>}&nbsp;</span></li></ol></pre>
<p><u><strong>PNGEncoder.as 中CRC 核心代码部分:</strong></u><br />
&nbsp;</p>
<pre><ol class="dp-c"><li class="alt"><span><span class="keyword">if</span><span>&nbsp;(!crcTableComputed)&nbsp;{ &nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;crcTableComputed&nbsp;=&nbsp;</span><span class="keyword">true</span><span>; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;crcTable&nbsp;=&nbsp;[]; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">var</span><span>&nbsp;c:uint; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">for</span><span>&nbsp;(</span><span class="keyword">var</span><span>&nbsp;n:uint&nbsp;=&nbsp;0;&nbsp;n&nbsp;&lt;&nbsp;256;&nbsp;n++)&nbsp;{ &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c&nbsp;=&nbsp;n; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">for</span><span>&nbsp;(</span><span class="keyword">var</span><span>&nbsp;k:uint&nbsp;=&nbsp;0;&nbsp;k&nbsp;&lt;&nbsp;8;&nbsp;k++)&nbsp;{ &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>&nbsp;(c&nbsp;&amp;&nbsp;1)&nbsp;{ &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c&nbsp;=&nbsp;uint(uint(0xedb88320)&nbsp;^&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint(c&nbsp;&gt;&gt;&gt;&nbsp;1)); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span class="keyword">else</span><span>&nbsp;{ &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c&nbsp;=&nbsp;uint(c&nbsp;&gt;&gt;&gt;&nbsp;1); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;crcTable[n]&nbsp;=&nbsp;c; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;</span></li><li><span class="comment">///// </span><span>&nbsp;</span></li><li class="alt"><span>c&nbsp;=&nbsp;0xffffffff; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">for</span><span>&nbsp;(</span><span class="keyword">var</span><span>&nbsp;i:</span><span class="keyword">int</span><span>&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;(e-p);&nbsp;i++)&nbsp;{ &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c&nbsp;=&nbsp;uint(crcTable[ &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(c&nbsp;^&nbsp;png.readUnsignedByte())&nbsp;&amp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint(0xff)]&nbsp;^&nbsp;uint(c&nbsp;&gt;&gt;&gt;&nbsp;8)); &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c&nbsp;=&nbsp;uint(c^uint(0xffffffff));&nbsp;</span></li></ol></pre>
<p><u><strong>Sample Cyclic Redundancy Code implementation</strong></u><br />
&nbsp;</p>
<pre><ol class="dp-cpp"><li class="alt"><span><span class="comment">/*&nbsp;Table&nbsp;of&nbsp;CRCs&nbsp;of&nbsp;all&nbsp;8-bit&nbsp;messages.&nbsp;*/</span><span>&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;unsigned&nbsp;</span><span class="datatypes">long</span><span>&nbsp;crc_table[256]; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;</span><span class="comment">/*&nbsp;Flag:&nbsp;has&nbsp;the&nbsp;table&nbsp;been&nbsp;computed?&nbsp;Initially&nbsp;false.&nbsp;*/</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;</span><span class="datatypes">int</span><span>&nbsp;crc_table_computed&nbsp;=&nbsp;0; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;</span><span class="comment">/*&nbsp;Make&nbsp;the&nbsp;table&nbsp;for&nbsp;a&nbsp;fast&nbsp;CRC.&nbsp;*/</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;</span><span class="keyword">void</span><span>&nbsp;make_crc_table(</span><span class="keyword">void</span><span>) &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;{ &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;</span><span class="datatypes">long</span><span>&nbsp;c; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="datatypes">int</span><span>&nbsp;n,&nbsp;k; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">for</span><span>&nbsp;(n&nbsp;=&nbsp;0;&nbsp;n&nbsp;&lt;&nbsp;256;&nbsp;n++)&nbsp;{ &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c&nbsp;=&nbsp;(unsigned&nbsp;</span><span class="datatypes">long</span><span>)&nbsp;n; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">for</span><span>&nbsp;(k&nbsp;=&nbsp;0;&nbsp;k&nbsp;&lt;&nbsp;8;&nbsp;k++)&nbsp;{ &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>&nbsp;(c&nbsp;&amp;&nbsp;1) &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c&nbsp;=&nbsp;0xedb88320L&nbsp;^&nbsp;(c&nbsp;&gt;&gt;&nbsp;1); &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">else</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c&nbsp;=&nbsp;c&nbsp;&gt;&gt;&nbsp;1; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;crc_table[n]&nbsp;=&nbsp;c; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;crc_table_computed&nbsp;=&nbsp;1; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;} &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;</span><span class="comment">/*&nbsp;Update&nbsp;a&nbsp;running&nbsp;CRC&nbsp;with&nbsp;the&nbsp;bytes&nbsp;buf[0..len-1]--the&nbsp;CRC </span>&nbsp;</li><li><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;should&nbsp;be&nbsp;initialized&nbsp;to&nbsp;all&nbsp;1&#39;s,&nbsp;and&nbsp;the&nbsp;transmitted&nbsp;value </span>&nbsp;</span></li><li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is&nbsp;the&nbsp;1&#39;s&nbsp;complement&nbsp;of&nbsp;the&nbsp;final&nbsp;running&nbsp;CRC&nbsp;(see&nbsp;the </span>&nbsp;</span></li><li><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;crc()&nbsp;routine&nbsp;below).&nbsp;*/</span><span>&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;unsigned&nbsp;</span><span class="datatypes">long</span><span>&nbsp;update_crc(unsigned&nbsp;</span><span class="datatypes">long</span><span>&nbsp;crc,&nbsp;unsigned&nbsp;</span><span class="datatypes">char</span><span>&nbsp;*buf, &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="datatypes">int</span><span>&nbsp;len) &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;{ &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;</span><span class="datatypes">long</span><span>&nbsp;c&nbsp;=&nbsp;crc; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="datatypes">int</span><span>&nbsp;n; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>&nbsp;(!crc_table_computed) &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;make_crc_table(); &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">for</span><span>&nbsp;(n&nbsp;=&nbsp;0;&nbsp;n&nbsp;&lt;&nbsp;len;&nbsp;n++)&nbsp;{ &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c&nbsp;=&nbsp;crc_table[(c&nbsp;^&nbsp;buf[n])&nbsp;&amp;&nbsp;0xff]&nbsp;^&nbsp;(c&nbsp;&gt;&gt;&nbsp;8); &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;c; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;} &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;</span><span class="comment">/*&nbsp;Return&nbsp;the&nbsp;CRC&nbsp;of&nbsp;the&nbsp;bytes&nbsp;buf[0..len-1].&nbsp;*/</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;unsigned&nbsp;</span><span class="datatypes">long</span><span>&nbsp;crc(unsigned&nbsp;</span><span class="datatypes">char</span><span>&nbsp;*buf,&nbsp;</span><span class="datatypes">int</span><span>&nbsp;len) &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;{ &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;update_crc(0xffffffffL,&nbsp;buf,&nbsp;len)&nbsp;^&nbsp;0xffffffffL; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;} &nbsp;</span></li><li class="alt"><span>&nbsp;</span></li></ol></pre>
<p>&nbsp;</p></p></p></p>]]></description>
</item>
<item>
<title><![CDATA[[原]一种猥琐的图片跨域的方法]]></title>
<link>http://www.xintend.com/Article/EihZHMjnxgYubhSqRjhZ.aspx</link>
<category><![CDATA[开发者]]></category>
<author>KingFo</author>
<pubDate>2008-11-13 19:28:25Z</pubDate>
<description><![CDATA[<p>今天看到<a title="达达(ASFlex)" target="_blank" href="http://www.asflex.cn/"><u><strong>达达(ASFlex)</strong></u></a>的博文，关于跨域的问题，突然想起来我之前<a href="http://www.xintend.com/Article/JzcYFVVpNcuSDRgnoaAz.aspx"><u><strong>[原]淘宝店家起义篇。。。</strong></u></a>要做的实验之一，遂趁当前下班时间，在公司里写了一段测试代码。</p>
<p>果然是无法Draw的，在帮助文档已经明确的写了......................................</p>
<p>如何突破呢？ 还是以后直接拿TextField来用？</p>
<p>以此标记，下回，改用AVM1+AVM2混合内容测试</p>
<p>目前方法是猥琐的抽出Loader来用</p>
<p>测试连接：<br />
<a href="http://www.xintend.com/temp/icd/index.html">www.xintend.com/temp/icd/index.html</a></p>
<p>有兴趣的同学可以去玩下~~ 图片可以拖动~~~~~~~</p>
<p>核心&nbsp;代码部分:<br />
&nbsp;</p>
<pre><ol class="dp-c"><li class="alt"><span><span>&nbsp;</span><span class="keyword">function</span><span>&nbsp;handleLoadBtn():</span><span class="keyword">void</span><span>&nbsp;{ &nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">var</span><span>&nbsp;s:String&nbsp;=&nbsp;urlInput.text; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">var</span><span>&nbsp;ht:String&nbsp;=&nbsp;</span><span class="string">&quot;&lt;img&nbsp;src=&#39;&quot;</span><span>; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>&nbsp;(s.length&nbsp;&gt;&nbsp;0)&nbsp;{ &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ht&nbsp;+=&nbsp;s;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ht&nbsp;+=&nbsp;</span><span class="string">&quot;&#39;&nbsp;&quot;</span><span>; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ht&nbsp;+=&nbsp;</span><span class="string">&quot;id=&#39;image&#39;&gt;&quot;</span><span>; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tf.htmlText&nbsp;=&nbsp;ht; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;output.text&nbsp;=&nbsp;ht; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;output.text&nbsp;+=&nbsp;</span><span class="string">&quot;\n&quot;</span><span>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;output.text&nbsp;+=&nbsp;tf.getImageReference(</span><span class="string">&quot;image&quot;</span><span>); &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">var</span><span>&nbsp;c:DisplayObject&nbsp;=&nbsp;tf.getImageReference(</span><span class="string">&quot;image&quot;</span><span>); &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ui.addChild(c); &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;output.text&nbsp;+=&nbsp;</span><span class="string">&quot;\n&nbsp;ui.addChild(c);&quot;</span><span>; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span></li></ol></pre>
<p>&nbsp;</p></p>]]></description>
</item>
<item>
<title><![CDATA[xmlrpc资料收集]]></title>
<link>http://www.xintend.com/Article/YoBOgkQlSDFfBUoUgVhp.aspx</link>
<category><![CDATA[开发者]]></category>
<author>KingFo</author>
<pubDate>2008-11-12 10:42:39Z</pubDate>
<description><![CDATA[<p>起因，为支持LiveWirter的Roclog准备</p>
<p><strong><span style="font-size: larger">XML-RPC Specification</span></strong><a href="http://www.xmlrpc.com/spec"><br />
http://www.xmlrpc.com/spec</a></p>
<p><strong><span style="font-size: larger">About Apache XML-RPC</span></strong><br />
<a href="http://ws.apache.org/xmlrpc/index.html">http://ws.apache.org/xmlrpc/index.html</a></p>
<div class="menu" style="margin-top: 3px"><span style="font-size: larger"><strong><font color="#000000">Redstone XML-RPC Library</font></strong></span><font color="#000000"> </font></div>
<div class="menu" style="margin-top: 3px"><a href="http://xmlrpc.sourceforge.net/#introduction"><font color="#000000">Introduction</font></a></div>
<div class="menu"><a href="http://xmlrpc.sourceforge.net/#clients"><font color="#000000">Developing XML-RPC Clients</font></a></div>
<div class="menu"><a href="http://xmlrpc.sourceforge.net/#services"><font color="#000000">Developing XML-RPC Services</font></a></div>
<div class="menu"><a href="http://xmlrpc.sourceforge.net/#javascript"><font color="#000000">XML-RPC and Ajax</font></a></div>
<div class="menu"><a href="http://xmlrpc.sourceforge.net/#tips"><font color="#000000">Tips</font></a></div>
<div class="menu"><a href="http://xmlrpc.sourceforge.net/#downloads"><font color="#000000">Downloads</font></a></div>
<div class="menu"><a href="http://xmlrpc.sourceforge.net/javadoc/index.html"><font color="#000000">JavaDoc</font></a></div>
<p>&nbsp;</p>]]></description>
</item>
<item>
<title><![CDATA[Blog升级至Roclog 3.2.0]]></title>
<link>http://www.xintend.com/Article/osHneutOPCEomwhaqPhJ.aspx</link>
<category><![CDATA[公告]]></category>
<author>KingFo</author>
<pubDate>2008-11-12 09:58:11Z</pubDate>
<description><![CDATA[<p><span style="color: #339966"><span style=""><span style="font-size: medium"><strong>由于Roclog.com被恶意抢注，所以官方域名更改为</strong></span></span></span></p>
<p><a href="http://www.foxcup.com/"><span style="color: #ff0000"><span style="font-size: medium"><span style="font-family: Arial"><strong>http://www.foxcup.com/</strong></span></span></span></a></p>
<p>&nbsp;</p>
<p>官方描述：</p>
<p><strong>Roclog v3.2.0 更新内容：</strong></p>
<ul>
    <li>修正上传部分的显示不足</li>
    <li>后台文章批量移动功能</li>
    <li>前台评论采用 AJAX 翻页</li>
    <li>加入留言本功能</li>
    <li>更改相册部分使用 AJAX 列表</li>
    <li>增加文章标题及评论、留言内容的 Exp 模式</li>
    <li>增加调用精灵功能</li>
    <li>增加文章置顶功能</li>
    <li>增加评论审核机制</li>
    <li>文章加密功能</li>
    <li>增加评论、引用和留言的自动审核选项</li>
    <li>防刷新机制</li>
</ul>]]></description>
</item>
<item>
<title><![CDATA[Lita - SQLite Administration Tool  (For AIR)]]></title>
<link>http://www.xintend.com/Article/KLaIKLGNLPFUOSQRoCmk.aspx</link>
<category><![CDATA[开发者]]></category>
<author>KingFo</author>
<pubDate>2008-11-11 09:31:52Z</pubDate>
<description><![CDATA[<h2>Dowload <a href="http://www.dehats.com/projets/lita/Lita.air"><u>Here</u></a></h2>
<h2>&nbsp;</h2>
<h2>Main Features</h2>
<ul>
    <li>An administration tool for your AIR SQLite Database</li>
    <li>Open, create, compact databases</li>
    <li>Create, rename, delete, and empty tables</li>
    <li>Create, rename and delete columns</li>
    <li>Create, modify and delete records</li>
    <li>Easily run your custom SQL statements</li>
    <li>Create and delete indices</li>
    <li>&nbsp;</li>
</ul>
<p><img alt="" src="http://www.dehats.com/drupal/files/orignal.png" /></p>]]></description>
</item>
<item>
<title><![CDATA[APNG?]]></title>
<link>http://www.xintend.com/Article/LRptPVzHuLwcuLIASBfG.aspx</link>
<category><![CDATA[开发者]]></category>
<author>KingFo</author>
<pubDate>2008-11-11 00:18:44Z</pubDate>
<description><![CDATA[<p>嗯，没错就是一个扩展PNG（Portable Network Graphics）的新格式APNG（Animated Portable Network Graphics）！！</p>
<p>产生的意义也就不说了，此文件生于2004年，直到2007年才被所谓的主流浏览器给加入到机制中。</p>
<p>不过本人还是比较怀疑的是APNG是否能成为标准？？</p>
<p>用于Web上，如果IE不支持，尤其像大部分国内普通用户是&ldquo;忠实&rdquo;的IE Fans......</p>
<p>自SWF针对位图方法做了较多优化，想必大多数网站都会采用SWF作为位图的逐帧动画了吧~~</p>
<p>至于如何替代GIF？貌似某组织几个老顽固一直坚持只要是和PNG爷爷扯上关系的，就必须只能表现一张图....</p>
<p>不过，目前支持的浏览器倒是有了FF3 和 第九代小O同学了~~~&nbsp; 有兴趣的话可以看下后面的图片~~~</p>
<p>未来谁知道呢？也许哪天弄个简单的解码器尝试下吧~~~&nbsp; 或许目前作为某种加密也不错~~~</p>
<p>啊，今天又是新的一天啦~~~ 期待着向某人索要JS写的解码器看看，不知道是不是仅仅在传说中.......</p>
<p>PS:<br />
数了下这个PNG的帧标签~~~ 靠~~ 25帧............ 千万要记得用FF3+~~~或者Opera9.5+<br />
<img alt="" src="/Attach/200811/633619603118906250_1455049.png" /></p>]]></description>
</item>
</channel>
</rss>