﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-三千越甲可吞吴℡</title><link>http://www.cnblogs.com/yao/</link><description>im3000.cn</description><language>zh-cn</language><lastBuildDate>Sat, 26 Jul 2008 09:47:12 GMT</lastBuildDate><pubDate>Sat, 26 Jul 2008 09:47:12 GMT</pubDate><ttl>60</ttl><item><title>[Flash开发笔记] 系列</title><link>http://www.cnblogs.com/yao/archive/2008/07/02/1049868.html</link><dc:creator>三千</dc:creator><author>三千</author><pubDate>Wed, 02 Jul 2008 10:09:00 GMT</pubDate><guid>http://www.cnblogs.com/yao/archive/2008/07/02/1049868.html</guid><wfw:comment>http://www.cnblogs.com/yao/comments/1049868.html</wfw:comment><comments>http://www.cnblogs.com/yao/archive/2008/07/02/1049868.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/yao/comments/commentRss/1049868.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/yao/services/trackbacks/1049868.html</trackback:ping><description><![CDATA[<a class="postTitle2" id="AjaxHolder_ctl01_TitleUrl" href="http://www.cnblogs.com/yao/archive/2008/03/13/1104321.html"><br />
</a><a class="postTitle2" id="homepage1_HomePageDays_DaysList_ctl02_DayItem_DayList_ctl00_TitleUrl" href="http://www.cnblogs.com/yao/archive/2008/04/21/1163609.html" target="_blank">[Flash开发笔记] ComboBox,List组件的二个函数</a><a class="postTitle2" id="AjaxHolder_ctl01_TitleUrl" href="http://www.cnblogs.com/yao/archive/2008/03/13/1104321.html"> <br />
[Flash开发笔记] AS中保留多少位小数的函数</a> <br />
<a class="postTitle2" id="homepage1_HomePageDays_DaysList_ctl00_DayItem_DayList_ctl00_TitleUrl" href="http://www.cnblogs.com/yao/archive/2008/03/04/1089974.html">[Flash开发笔记] 如何让Flash的swf文件在客户端不缓存</a><a class="postTitle2" id="homepage1_HomePageDays_DaysList_ctl00_DayItem_DayList_ctl00_TitleUrl" href="http://www.cnblogs.com/yao/archive/2008/01/23/1049856.html" target="_blank"><br />
[Flash开发笔记] List控件--删除指定label或data的项</a> <br />
<a id="PostsList1_rpPosts_ctl06_TitleUrl" href="http://www.cnblogs.com/yao/archive/2008/01/02/1022721.html" target="_blank">[Flash开发笔记] Flash 执行exe文件</a><br />
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl09_TitleUrl" href="http://www.cnblogs.com/yao/archive/2007/10/30/942597.html" target="_blank">[Flash开发笔记] Flash中动态文本框与字母间距</a> </div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl10_TitleUrl" href="http://www.cnblogs.com/yao/archive/2007/10/29/941797.html" target="_blank">[Flash开发笔记] Flash中动态文本框与遮罩的问题</a><br />
<a id="PostsList1_rpPosts_ctl13_TitleUrl" href="http://www.cnblogs.com/yao/archive/2007/10/18/928870.html" target="_blank">[Flash开发笔记] 正确理解MovieClipLoader的onLoadComplete事件</a><br />
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl15_TitleUrl" href="http://www.cnblogs.com/yao/archive/2007/09/19/898043.html" target="_blank">[Flash开发笔记] 关于Flash中的ASO文件</a></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl17_TitleUrl" href="http://www.cnblogs.com/yao/archive/2007/07/18/823174.html" target="_blank">[Flash开发笔记] 如何在as2.0中使用自定义类事件</a>
<div class="postText2"></div>
<a id="PostsList1_rpPosts_ctl18_TitleUrl" href="http://www.cnblogs.com/yao/archive/2007/07/02/803072.html" target="_blank">[Flash开发笔记] 自定义ActionScript中的trim函数，取回车函数，字节换算函数</a>
<div class="postText2"></div>
<a id="PostsList1_rpPosts_ctl19_TitleUrl" href="http://www.cnblogs.com/yao/archive/2007/07/02/803015.html" target="_blank">[Flash开发笔记] ActionScript 生成伪 Guid</a><br />
<a id="PostsList1_rpPosts_ctl20_TitleUrl" href="http://www.cnblogs.com/yao/archive/2007/07/02/803003.html" target="_blank"><font face="Verdana">[Flash开发笔记] 爱</font>你不容易——ExternalInterface</a><br />
<a id="PostsList1_rpPosts_ctl21_TitleUrl" href="http://www.cnblogs.com/yao/archive/2007/07/02/802979.html" target="_blank"><font face="Verdana">[Flash开发笔记] </font>ActionScript 中的字符串替换函数</a><br />
<a id="PostsList1_rpPosts_ctl24_TitleUrl" href="http://www.cnblogs.com/yao/archive/2007/05/14/746332.html" target="_blank"><font face="Verdana">[Flash开发笔记] </font>Flash游戏开发之按键控制(复合键，八方向键)</a> <br />
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl25_TitleUrl" href="http://www.cnblogs.com/yao/archive/2007/05/12/743536.html" target="_blank"><font face="Verdana">[Flash开发笔记] </font>教你用Flash制作曲线报表图</a> </div>
<div class="postText2"></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl26_TitleUrl" href="http://www.cnblogs.com/yao/archive/2007/05/04/735550.html" target="_blank"><font face="Verdana">[Flash开发笔记] </font>flash 8 中的 setTimeout()</a> </div>
<div class="postText2"></div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl27_TitleUrl" href="http://www.cnblogs.com/yao/archive/2007/05/03/735206.html" target="_blank"><font face="Verdana">[Flash开发笔记] </font>通过MC里的按钮跳转场景</a> <br />
</div>
<div class="postText2"><a id="PostsList1_rpPosts_ctl29_TitleUrl" href="http://www.cnblogs.com/yao/archive/2007/04/28/731396.html" target="_blank">[Flash开发笔记] Flash导出文件慢的一个可能原因<br />
</a><a id="PostsList1_rpPosts_ctl33_TitleUrl" href="http://www.cnblogs.com/yao/archive/2007/02/24/655190.html" target="_blank"><font face="Verdana">[Flash开发笔记] </font>Flash上传文件(结合asp.net)</a> <br />
<a id="PostsList1_rpPosts_ctl43_TitleUrl" href="http://www.cnblogs.com/yao/archive/2006/07/27/460761.html" target="_blank"><font face="Verdana">[Flash开发笔记] </font>从Flash Remoting For .Net 返回一个数组数据给Flash</a> <span class="postDesc2"><br />
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl44_TitleUrl" href="http://www.cnblogs.com/yao/archive/2006/07/07/445050.html" target="_blank">[Flash开发笔记] Flash中如何调整&#8220;动态文本&#8221;框的_alpha值</a> </div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl45_TitleUrl" href="http://www.cnblogs.com/yao/archive/2006/07/07/445000.html" target="_blank">[Flash开发笔记] Flash 检测摄像头是否被占用</a> <br />
<a id="PostsList1_rpPosts_ctl47_TitleUrl" href="http://www.cnblogs.com/yao/archive/2006/07/04/442146.html" target="_blank"><font face="Verdana">[Flash开发笔记] </font>把FlashCom 帮助安装到Flash 8 中文版</a>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl05_TitleUrl" href="http://www.cnblogs.com/yao/archive/2006/06/14/426005.html" target="_blank"><font face="Verdana">[Flash开发笔记] F</font>lash Remoting For .Net 的跨域连接问题解决~</a> </div>
</div>
<div class="PostList">
<div class="postTitl2"><a id="PostsList1_rpPosts_ctl06_TitleUrl" href="http://www.cnblogs.com/yao/archive/2006/06/07/419384.html" target="_blank"><font face="Verdana">[Flash开发笔记] </font>使用FLVPlayback组件播放fms(fcs)的流式FLV文件~</a> <br />
<br />
</div>
</div>
</div>
</div>
</span></div>
</div>
</div>
</div>
</div>
</div>
<img src ="http://www.cnblogs.com/yao/aggbug/1049868.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41316/" target="_blank">[新闻]腾讯CEO马化腾:中国互联网业准备再过冬</a>]]></description></item><item><title>FMS 中文帮助 (下载)</title><link>http://www.cnblogs.com/yao/archive/2008/04/24/1168795.html</link><dc:creator>三千</dc:creator><author>三千</author><pubDate>Thu, 24 Apr 2008 02:16:00 GMT</pubDate><guid>http://www.cnblogs.com/yao/archive/2008/04/24/1168795.html</guid><wfw:comment>http://www.cnblogs.com/yao/comments/1168795.html</wfw:comment><comments>http://www.cnblogs.com/yao/archive/2008/04/24/1168795.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/yao/comments/commentRss/1168795.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/yao/services/trackbacks/1168795.html</trackback:ping><description><![CDATA[<font face="Verdana"><br />
&nbsp;&nbsp;&nbsp; 老是有网友找我要，所以干脆放出来，这是TTGame整理的版本，其实网上一搜到处都有。排版和没有图片不理想，但也凑合能看。<br />
<font face="Verdana">&nbsp;&nbsp;&nbsp; </font>陈冰那个版本我从来没见过，因为是付费的，不知道现在还是否有出售，不过我已经用不上了，FMS搞熟了就那些东西，剩下的就靠经验积累了。<br />
<br />
&nbsp;&nbsp;&nbsp; <a href="http://www.cnblogs.com/Files/yao/fms_api_cn.rar" target="_blank">fms_api_cn.rar(3.61MB)&gt;&gt;<br />
</a></font>
<img src ="http://www.cnblogs.com/yao/aggbug/1168795.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41315/" target="_blank">[新闻]F8 Keynote Speech[多图]</a>]]></description></item><item><title>[Flash开发笔记] ComboBox,List组件的二个函数</title><link>http://www.cnblogs.com/yao/archive/2008/04/21/1163609.html</link><dc:creator>三千</dc:creator><author>三千</author><pubDate>Mon, 21 Apr 2008 03:41:00 GMT</pubDate><guid>http://www.cnblogs.com/yao/archive/2008/04/21/1163609.html</guid><wfw:comment>http://www.cnblogs.com/yao/comments/1163609.html</wfw:comment><comments>http://www.cnblogs.com/yao/archive/2008/04/21/1163609.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/yao/comments/commentRss/1163609.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/yao/services/trackbacks/1163609.html</trackback:ping><description><![CDATA[<br />
以下二个函数，适合<font face="Verdana">ComboBox,List<font face="Verdana">组</font>件。<br />
</font><br />
<strong>CheckCmbItemExists:</strong>检测某项是否已存在。有时候，需要动态向List或ComboBox<font face="Verdana">组件</font>中添加项，但是在添加前，要事先检查是否已经存在了，避免重复添加。<br />
<br />
<strong>SelectCmbItem:</strong>选中某项。有时候需要使用程序将List或ComboBox<font face="Verdana">组件</font>中某项选中。<br />
<br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">&nbsp;&nbsp;&nbsp; <span style="color: #339966">//<font face="Verdana">检测某项是否已存在。</font></span><br />
&nbsp;&nbsp;&nbsp;&nbsp;function</span><span style="color: #000000">&nbsp;CheckCmbItemExists(_cmb,&nbsp;_data)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;l&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;_cmb.length;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;j&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;j</span><span style="color: #000000">&lt;</span><span style="color: #000000">l;&nbsp;j</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(_cmb.getItemAt(j).data&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;_data)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//<font face="Verdana">选中某项。</font><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;SelectCmbItem(_cmb,&nbsp;_data)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;l&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;_cmb.length;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;index&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;j&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;j</span><span style="color: #000000">&lt;</span><span style="color: #000000">l;&nbsp;j</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(_cmb.getItemAt(j).data&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;_data)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;index&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;j;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">break</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_cmb.selectedIndex&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;index;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<br />
<img src ="http://www.cnblogs.com/yao/aggbug/1163609.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41314/" target="_blank">[新闻]奥运核心资源被分食 搜狐央视网谁忽悠谁？</a>]]></description></item><item><title>[Flash开发笔记] AS中保留多少位小数的函数</title><link>http://www.cnblogs.com/yao/archive/2008/03/13/1104321.html</link><dc:creator>三千</dc:creator><author>三千</author><pubDate>Thu, 13 Mar 2008 12:25:00 GMT</pubDate><guid>http://www.cnblogs.com/yao/archive/2008/03/13/1104321.html</guid><wfw:comment>http://www.cnblogs.com/yao/comments/1104321.html</wfw:comment><comments>http://www.cnblogs.com/yao/archive/2008/03/13/1104321.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/yao/comments/commentRss/1104321.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/yao/services/trackbacks/1104321.html</trackback:ping><description><![CDATA[<div>&nbsp;&nbsp;&nbsp; 有时候需要返回小数点后若干位的一个浮点数。如2.16832，保留二位小数变成：2.17，这样的函数在AS 2.0中是没有的，需要自己写：<br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img id="Codehighlighter1_26_88_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_26_88_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_26_88_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_26_88_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_26_88_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_26_88_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_26_88_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_26_88_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;getPoint(num,&nbsp;l)&nbsp;</span><span id="Codehighlighter1_26_88_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_26_88_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;(Math.round(num</span><span style="color: #000000">*</span><span style="color: #000000">Math.pow(</span><span style="color: #000000">10</span><span style="color: #000000">,&nbsp;l))</span><span style="color: #000000">/</span><span style="color: #000000">Math.pow(10,&nbsp;l));</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /></span><span style="color: #000000">}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /></span></div>
</div>
<br />
&nbsp;&nbsp;&nbsp; <strong>用法</strong><br />
&nbsp;&nbsp;&nbsp; num:要处理的浮点数；<br />
&nbsp;&nbsp;&nbsp; l:要保留的小数位个数；<br />
&nbsp;&nbsp;&nbsp; 如：getPoint(2.16832,2)，输出为：2.17<br />
&nbsp;&nbsp;&nbsp; <strong>注意</strong><br />
&nbsp;&nbsp;&nbsp; 在使用这个函数时，要注意溢出，因为num<span style="color: #000000">*</span><span style="color: #000000">Math.pow(</span><span style="color: #000000">10</span><span style="color: #000000">,&nbsp;l)及有可能超出了AS中浮点数所能表示的范围，从而导致你不想要的结果，另外，当输入数num比较大的时候，虽然还在浮点数表示范围内，但是小数点返回就可能不准确了，如：<font face="Verdana">getPoint(12345678.123456789123, 10)</font>　，输出结果：<font face="Verdana">12345678.1234568</font>，而不是<font face="Verdana">12345678.1234567891。<br />
</font><br />
&nbsp;&nbsp;&nbsp; </span>
<img src ="http://www.cnblogs.com/yao/aggbug/1104321.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41313/" target="_blank">[新闻]微软推新型搜索技术"BrowseRank"挑战谷歌</a>]]></description></item><item><title>用C#截取指定长度的中英文混合字符串 改进版</title><link>http://www.cnblogs.com/yao/archive/2008/03/06/1093066.html</link><dc:creator>三千</dc:creator><author>三千</author><pubDate>Thu, 06 Mar 2008 02:06:00 GMT</pubDate><guid>http://www.cnblogs.com/yao/archive/2008/03/06/1093066.html</guid><wfw:comment>http://www.cnblogs.com/yao/comments/1093066.html</wfw:comment><comments>http://www.cnblogs.com/yao/archive/2008/03/06/1093066.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cnblogs.com/yao/comments/commentRss/1093066.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/yao/services/trackbacks/1093066.html</trackback:ping><description><![CDATA[<br />
很早以前写过一篇文章(<a class="postTitle2" id="AjaxHolder_ctl01_TitleUrl" href="http://www.cnblogs.com/yao/archive/2006/07/04/442886.html" target="_blank">用C#截取指定长度的中英文混合字符串</a>)，但是对性能没有测试，有人说我写的这个方法性能有问题，后来想，可能真会有BT之需求要求传入一个几万K甚至几M体积的字符串进来，那将会影响正则Match的速度，比如文章系统中就极有可能用到，今天有点时间，就改进了一下，代码如下：<br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;getStr(</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;s,</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;l,</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;endStr)<br />
<img id="Codehighlighter1_60_468_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_60_468_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_60_468_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_60_468_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_60_468_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_60_468_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_60_468_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_60_468_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_60_468_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_60_468_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;temp&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;s.Substring(</span><span style="color: #800080">0</span><span style="color: #000000">,&nbsp;(s.Length&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;l)</span><span style="color: #000000">?</span><span style="color: #000000">s.Length:l);<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(Regex.Replace(temp,</span><span style="color: #800000">"</span><span style="color: #800000">[\u4e00-\u9fa5]</span><span style="color: #800000">"</span><span style="color: #000000">,</span><span style="color: #800000">"</span><span style="color: #800000">zz</span><span style="color: #800000">"</span><span style="color: #000000">,RegexOptions.IgnoreCase).Length</span><span style="color: #000000">&lt;=</span><span style="color: #000000">l)<br />
<img id="Codehighlighter1_212_233_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_212_233_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_212_233_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_212_233_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_212_233_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_212_233_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_212_233_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_212_233_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_212_233_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_212_233_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;temp;<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i</span><span style="color: #000000">=</span><span style="color: #000000">temp.Length;i</span><span style="color: #000000">&gt;=</span><span style="color: #800080">0</span><span style="color: #000000">;i</span><span style="color: #000000">--</span><span style="color: #000000">)<br />
<img id="Codehighlighter1_271_448_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_271_448_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_271_448_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_271_448_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_271_448_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_271_448_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_271_448_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_271_448_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_271_448_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_271_448_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;temp.Substring(</span><span style="color: #800080">0</span><span style="color: #000000">,i);<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(Regex.Replace(temp,</span><span style="color: #800000">"</span><span style="color: #800000">[\u4e00-\u9fa5]</span><span style="color: #800000">"</span><span style="color: #000000">,</span><span style="color: #800000">"</span><span style="color: #800000">zz</span><span style="color: #800000">"</span><span style="color: #000000">,RegexOptions.IgnoreCase).Length</span><span style="color: #000000">&lt;=</span><span style="color: #000000">l</span><span style="color: #000000">-</span><span style="color: #000000">endStr.Length)<br />
<img id="Codehighlighter1_408_440_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_408_440_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_408_440_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_408_440_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_408_440_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_408_440_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_408_440_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_408_440_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_408_440_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_408_440_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;temp&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;endStr;<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;endStr;<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<a class="postTitle2" id="AjaxHolder_ctl01_TitleUrl" href="http://www.cnblogs.com/yao/archive/2006/07/04/442886.html"><br />
</a><br />
此修改版的方法多加了个参数"<span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;endStr"</span>，是指当字符串"<strong><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;s"</span></strong>超过指定长度"<span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;l"</span>时，对结尾的处理，比如要不要加上省略号"..."或加上其它字符。<br />
另外，添加了省略号之后，省略号长度也是算在结果的长度之内了。<br />
<br />
<strong>&nbsp;&nbsp;&nbsp; 用法如：</strong><br />
<p><font face="Verdana">&nbsp;&nbsp;&nbsp; getStr("中国1中国中国中1111中国", 23,"")&nbsp;<br />
<font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="color: #999999">//output:中国1中国中国中1111中国<br />
</span><br />
<font face="Verdana">&nbsp;&nbsp;&nbsp; getStr</font>("中国1中国中国中1111中国", 23,"...")&nbsp;<br />
<font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="color: #999999">//output:中国1中国中国中1111...</span></font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp; getStr("中国1中国中国中1111中国中国", 23,"")&nbsp;&nbsp;&nbsp;&nbsp;<br />
<font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="color: #999999">//output:中国1中国中国中1111中国</span><br />
</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;</font><font face="Verdana">getStr("中国1中国中国中1111中国中国", 23,"...")<br />
<font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="color: #999999">//output:中国1中国中国中1111...</span><br />
<br />
----------------------------------------------------------------------<br />
<br />
<font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;</font><strong>补充</strong>："kpz"回复说上边的方法会截取失真，而我又无法做到穷尽测试，所以换了另一种写法，为了考虑性能结果把逻辑搞的有点"晕"，反复测试了多次，代码如下：<br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;getStr2(</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;s,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;l,</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;endStr)&nbsp;<br />
<img id="Codehighlighter1_62_602_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_62_602_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_62_602_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_62_602_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_62_602_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_62_602_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_62_602_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_62_602_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_62_602_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_62_602_Open_Text"><span style="color: #000000">{&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;temp&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;s.Substring(</span><span style="color: #800080">0</span><span style="color: #000000">,&nbsp;(s.Length&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;l</span><span style="color: #000000">+</span><span style="color: #800080">1</span><span style="color: #000000">)</span><span style="color: #000000">?</span><span style="color: #000000">s.Length:l</span><span style="color: #000000">+</span><span style="color: #800080">1</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">[]&nbsp;encodedBytes&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;System.Text.ASCIIEncoding.ASCII.GetBytes(temp);<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;outputStr&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">""</span><span style="color: #000000">;&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;count&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;temp.Length;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;<br />
<img id="Codehighlighter1_295_487_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_295_487_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_295_487_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_295_487_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_295_487_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_295_487_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_295_487_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_295_487_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_295_487_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_295_487_Open_Text"><span style="color: #000000">{&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;((</span><span style="color: #0000ff">int</span><span style="color: #000000">)encodedBytes[i]&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">63</span><span style="color: #000000">)<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count&nbsp;</span><span style="color: #000000">+=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">2</span><span style="color: #000000">;&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count&nbsp;</span><span style="color: #000000">+=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">1</span><span style="color: #000000">;&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(count&nbsp;</span><span style="color: #000000">&lt;=</span><span style="color: #000000">&nbsp;l</span><span style="color: #000000">-</span><span style="color: #000000">endStr.Length)<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outputStr&nbsp;</span><span style="color: #000000">+=</span><span style="color: #000000">&nbsp;temp.Substring(i,</span><span style="color: #800080">1</span><span style="color: #000000">);&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(count</span><span style="color: #000000">&gt;</span><span style="color: #000000">l)&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">break</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(count</span><span style="color: #000000">&lt;=</span><span style="color: #000000">l)<br />
<img id="Codehighlighter1_510_548_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_510_548_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_510_548_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_510_548_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_510_548_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_510_548_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_510_548_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_510_548_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_510_548_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_510_548_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outputStr</span><span style="color: #000000">=</span><span style="color: #000000">temp;<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;endStr</span><span style="color: #000000">=</span><span style="color: #800000">""</span><span style="color: #000000">;<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outputStr&nbsp;</span><span style="color: #000000">+=</span><span style="color: #000000">&nbsp;endStr;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;outputStr;&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<br />
用法和参数含义均同前，注意省略号也占位置，算了长度。<br />
</font></p>
<img src ="http://www.cnblogs.com/yao/aggbug/1093066.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41312/" target="_blank">[新闻]2008年7月26日IT博客精选</a>]]></description></item><item><title>[Flash开发笔记]如何让Flash的swf文件在客户端不缓存</title><link>http://www.cnblogs.com/yao/archive/2008/03/04/1089974.html</link><dc:creator>三千</dc:creator><author>三千</author><pubDate>Tue, 04 Mar 2008 04:03:00 GMT</pubDate><guid>http://www.cnblogs.com/yao/archive/2008/03/04/1089974.html</guid><wfw:comment>http://www.cnblogs.com/yao/comments/1089974.html</wfw:comment><comments>http://www.cnblogs.com/yao/archive/2008/03/04/1089974.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/yao/comments/commentRss/1089974.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/yao/services/trackbacks/1089974.html</trackback:ping><description><![CDATA[<strong>&nbsp;&nbsp;&nbsp; 问题</strong><br />
&nbsp;&nbsp;&nbsp; 如何让<font face="Verdana">Flash的swf在客户端不缓存</font>？即如何让swf文件不出现在IE浏览器的临时文件夹里?<br />
<strong><br />
&nbsp;&nbsp;&nbsp; 方法:</strong><br />
&nbsp;&nbsp;&nbsp; 一般的我们对于动态页面(asp,php等)禁止缓存都是通过语言本身设置HTTP头来实现的，但swf不能直接设置HTTP头。办法就是可以从服务端着手，在IIS里添加HTTP头：<br />
<br />
<font face="Verdana">
<div style="border-right: #666666 1px solid; border-top: #666666 1px solid; border-left: #666666 1px solid; border-bottom: #666666 1px solid"><font face="Verdana">cache-control: "no-cache"<br />
pragma: "no-cache"<br />
expires: "-1"</font></div>
</font><font face="Verdana">
<p align="left"><br />
&nbsp;&nbsp;&nbsp; 操作方法见图示：<br />
<br />
<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/yao/set-no-cache.png" border="0" /><br />
<br />
</p>
</font>&nbsp;&nbsp;&nbsp; 但在设置IIS时要注意，如果对整个网站设置了HTTP头，则整站的内容(如jpg，gif，css，html等)都不会被缓存了，这样会导致每次都要重新下载这些文件，不好。那么可以更进一步，在网站下创建一个<strong>虚拟目录</strong>，然后对此虚拟目录设置HTTP头，把禁止缓存的swf文件放在其中。<br />
&nbsp;&nbsp;&nbsp; <br />
<br />
 <img src ="http://www.cnblogs.com/yao/aggbug/1089974.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41311/" target="_blank">[新闻]微软每年向Apache捐10万美元支持开源软件</a>]]></description></item><item><title>[FMS开发笔记]理解应用程序实例(聊天室房间的划分)</title><link>http://www.cnblogs.com/yao/archive/2008/02/29/1085654.html</link><dc:creator>三千</dc:creator><author>三千</author><pubDate>Fri, 29 Feb 2008 01:00:00 GMT</pubDate><guid>http://www.cnblogs.com/yao/archive/2008/02/29/1085654.html</guid><wfw:comment>http://www.cnblogs.com/yao/comments/1085654.html</wfw:comment><comments>http://www.cnblogs.com/yao/archive/2008/02/29/1085654.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/yao/comments/commentRss/1085654.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/yao/services/trackbacks/1085654.html</trackback:ping><description><![CDATA[<div>&nbsp;</div>
<div><font face="Verdana"><font face="Verdana">&nbsp;&nbsp;&nbsp; </font>在制作聊天室，斗地主游戏等这样的Flash/FMS程序时，可能会涉及到划分房间的问题，比如二个房间的游戏规则相同，功能相同，但是二个房间的数据独立，互不影响。</font></div>
<div>&nbsp;</div>
<div><font face="Verdana"><font face="Verdana">&nbsp;&nbsp;&nbsp; </font>那么这种应用，就涉及到应用程序实例了，如以下。</font></div>
<div>&nbsp;</div>
<div><font face="Verdana"><font face="Verdana">
<div style="border-right: #666666 1px solid; border-top: #666666 1px solid; border-left: #666666 1px solid; border-bottom: #666666 1px solid"><font face="Verdana"><font face="Verdana">&nbsp;&nbsp;&nbsp; </font>nc.connect("rtmp://myDomain.com/chat_app/room_01")&nbsp;<br />
<font face="Verdana">&nbsp;&nbsp;&nbsp; </font>nc.connect("rtmp://myDomain.com/chat_app/room_02") </font></div>
</font></font></div>
<div>&nbsp;</div>
<div><font face="Verdana"><font face="Verdana">&nbsp;&nbsp;&nbsp; </font>chat_app是一个聊天室程序，room_01和room_02就是chat_app的两个不同实例，整个地址的格式是：<br />
<font face="Verdana"><br />
<div style="border-right: #666666 1px solid; border-top: #666666 1px solid; border-left: #666666 1px solid; border-bottom: #666666 1px solid"><font face="Verdana">&nbsp;&nbsp;&nbsp; </font>protocol:[//host][:port]/appname/[instanceName]</div>
</font></font></div>
<div>&nbsp;</div>
<div><font face="Verdana"><font face="Verdana">&nbsp;&nbsp;&nbsp; </font>地址中的[instanceName]以方括弧表示可有可无，但是不管这个"instanceName"有没有，它都会连接到了一个实例。<br />
<font face="Verdana">&nbsp;&nbsp;&nbsp; </font>就是说，任何一个客户机连接到一个应用程序时，这个客户机实际上都是连接到一个应用程序实例（application instances）的。</font></div>
<div>&nbsp;</div>
<div><font face="Verdana"><font face="Verdana">&nbsp;&nbsp;&nbsp; </font>比如我们一般的写法：<br />
<br />
<font face="Verdana">
<div style="border-right: #666666 1px solid; border-top: #666666 1px solid; border-left: #666666 1px solid; border-bottom: #666666 1px solid"><font face="Verdana">&nbsp;&nbsp;&nbsp; </font>nc.connect("rtmp://myDomain.com/my_app"); </div>
</font></font></div>
<div>&nbsp;</div>
<div><font face="Verdana"><font face="Verdana">&nbsp;&nbsp;&nbsp; </font>本质上他和以下的做法是等同的：<br />
<br />
<font face="Verdana">
<div style="border-right: #666666 1px solid; border-top: #666666 1px solid; border-left: #666666 1px solid; border-bottom: #666666 1px solid"><font face="Verdana">&nbsp;&nbsp;&nbsp; </font>nc.connect("rtmp://myDomain.com/chat_app/_definst_"); </div>
</font></font></div>
<div>&nbsp;</div>
<div><font face="Verdana"><font face="Verdana">&nbsp;&nbsp;&nbsp; </font>即在这种情况下，默认连接的实例为"_definst_"，并不代表没有实例。</font></div>
<div>&nbsp;</div>
<div><font face="Verdana"><font face="Verdana">&nbsp;&nbsp;&nbsp; </font>那么我们就要好好理解一下&#8220;实例&#8221;，做过高级语言开发的，就很好理解，就象一个类有多个实例一样，它们具有同样的&#8220;规则&#8221;，但是具有各自不同的&#8220;数据&#8221;。</font></div>
<div>&nbsp;</div>
<div><font face="Verdana"><font face="Verdana">&nbsp;&nbsp;&nbsp; </font>一个实例不需要在服务器上定义它自己的目录。应用程序的资源，比如流和共享对象，对于每个实例而言都是独立的，并且是被存储在这个应用程序的流和共享对象目录下的它们各自的目录中的，比如实例room_01使用的SharedObject对象(比如叫"my_rso")，会存储在"\chat_app\sharedobjects\room_01\my_rso.fso"。 </font></div>
<div>&nbsp;</div>
<div><font face="Verdana"><font face="Verdana">&nbsp;&nbsp;&nbsp; </font>使用应用程序实例的另一个原因是可以避免由这个应用程序创建的记录流或共享对象的冲突。例如，在上面的例子中，room_01和room_02都使用main.asc中的程序规则和逻辑，但是他们的数据各自独立，互不影响。由room_01创建的任何流或共享对象与由room_02创建的都是截然不同的，虽然这两个实例都是运行在同一个应用程序chat_app。<br />
<br />
<br />
</font></div>
 <img src ="http://www.cnblogs.com/yao/aggbug/1085654.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41310/" target="_blank">[新闻]AOL将关闭3个网站以降低成本 集中发力广告</a>]]></description></item><item><title>**版权说明**</title><link>http://www.cnblogs.com/yao/archive/2008/01/23/159929.html</link><dc:creator>三千</dc:creator><author>三千</author><pubDate>Wed, 23 Jan 2008 04:55:00 GMT</pubDate><guid>http://www.cnblogs.com/yao/archive/2008/01/23/159929.html</guid><wfw:comment>http://www.cnblogs.com/yao/comments/159929.html</wfw:comment><comments>http://www.cnblogs.com/yao/archive/2008/01/23/159929.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/yao/comments/commentRss/159929.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/yao/services/trackbacks/159929.html</trackback:ping><description><![CDATA[<span style="color: red">&#8220;文章分类&#8221;栏目的内容都不是原创的，多为转贴，如果在转贴时有原出处及作者，我会加以注明，但有些文章出处及作者不详的，会加上[转贴]字样，且版权都归原作者所有，如果您发现那篇文章是您的而没有<font face="Courier New">署名</font>，请与我联系，我会第一时间加上<font face="Courier New">署名或应您要求进行删除</font>。 <br />
<br />
&#8220;随笔分类&#8221;中的文章为原创内容，采用<a href="http://creativecommons.org/licenses/by-nc-sa/3.0/deed.zh" target="_blank"><img height="16" alt="" src="http://www.cnblogs.com/images/cnblogs_com/yao/o_cclogo.gif" width="16" border="0" longdesc="Creative Commons License" /></a>许可：<font face="Courier New">署名，非商业。</font> </span>
 <img src ="http://www.cnblogs.com/yao/aggbug/159929.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41309/" target="_blank">[新闻]谷歌网页索引数量突破1万亿个</a>]]></description></item><item><title>[Flash开发笔记] List控件--删除指定label或data的项</title><link>http://www.cnblogs.com/yao/archive/2008/01/23/1049856.html</link><dc:creator>三千</dc:creator><author>三千</author><pubDate>Wed, 23 Jan 2008 04:29:00 GMT</pubDate><guid>http://www.cnblogs.com/yao/archive/2008/01/23/1049856.html</guid><wfw:comment>http://www.cnblogs.com/yao/comments/1049856.html</wfw:comment><comments>http://www.cnblogs.com/yao/archive/2008/01/23/1049856.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/yao/comments/commentRss/1049856.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/yao/services/trackbacks/1049856.html</trackback:ping><description><![CDATA[<div><font face="Verdana">List控件有两个关于remove的方法：removeAll()、removeItemAt(index)，但是在预先不知道索引的情况下，如果想删除label为"yaoyao"或data为"333"的项，怎么做呢？</font></div>
<div>&nbsp;</div>
<div><font face="Verdana">方法是循环遍历，并进行比对，再使用removeItemAt方法删除：<br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;l&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;_list.length;<br />
</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;j&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;j</span><span style="color: #000000">&lt;</span><span style="color: #000000">l;&nbsp;j</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;{<br />
&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(_list.getItemAt(j).label&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">yaoyao</span><span style="color: #000000">"</span><span style="color: #000000">)&nbsp;{<br />
&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">_list.getItemAt(j).data&nbsp;==&nbsp;"333";</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;_list.removeItemAt(j);<br />
&nbsp;&nbsp;</span><span style="color: #0000ff">break</span><span style="color: #000000">;<br />
&nbsp;}<br />
}</span></div>
</font></div>
<br />
 <img src ="http://www.cnblogs.com/yao/aggbug/1049856.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41309/" target="_blank">[新闻]谷歌网页索引数量突破1万亿个</a>]]></description></item><item><title>FMS如何连接FlashRemoting？(附示例源码下载)</title><link>http://www.cnblogs.com/yao/archive/2008/01/16/1041131.html</link><dc:creator>三千</dc:creator><author>三千</author><pubDate>Wed, 16 Jan 2008 04:51:00 GMT</pubDate><guid>http://www.cnblogs.com/yao/archive/2008/01/16/1041131.html</guid><wfw:comment>http://www.cnblogs.com/yao/comments/1041131.html</wfw:comment><comments>http://www.cnblogs.com/yao/archive/2008/01/16/1041131.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/yao/comments/commentRss/1041131.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/yao/services/trackbacks/1041131.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp; 在FMS开发中,我们经常要在FMS端连接数据库，进行如身份验证等的数据查询操作。方法有多种,你可以使用WebServices或NetConnection对象，也可以使用<font face="Verdana">NetServices</font>类，差别是<font face="Verdana">NetServices</font>能够返回RecordSet对象的数据,本例子就是一个使用<font face="Verdana">NetServices连接FlashRemoting程序</font>的简单例子。例子的重点在于<strong>跑通</strong>"Flash-&gt;FMS-&gt;FlashRemoting"这个数据传递的过程，所以并没有使用到RecordSet对象。例子使用Flash 8 + FMS 2.0.4 + Asp.Net 2.0 制作。<br />
<br />
<strong><span style="color: red"><strong>&nbsp;&nbsp;&nbsp; </strong><a href="/Files/yao/FMS_FlashRemoting.rar"><strong>点此下载(74KB)&gt;&gt;</strong></a></span></strong><br />
<font face="Verdana"><br />
&nbsp;&nbsp;&nbsp; <strong>一、使用说明</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1).在IIS中，创建虚拟目录<strong>RemotingApp</strong>，asp.net版本选择2.0，将例子中<font face="Verdana">RemotingApp</font>文件夹中的内容放进去；<br />
</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2).将<font face="Verdana"><strong>crossdomain.xml</strong>文件</font>放在IIS站点根中，要能通过<a href="http://domain/crossdomain.xml">http://domain/<font face="Verdana">crossdomain.xml</font></a>访问；<br />
<font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3).将<strong>FMSRemotingTest</strong>文件夹copy到FMS的应用程序目录中，此目录默认在&#8220;<font face="Verdana">C:\Program Files\Macromedia\Flash Media Server 2\applications\&#8221;</font></font><br />
<br />
&nbsp;&nbsp;&nbsp; <strong>二、关键代码分析<br />
</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1).<font face="Verdana">TestDemo.aspx<br />
</font>
<div align="center">
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 89.37%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; height: 241px; background-color: #eeeeee">
<div align="left"><span style="color: #000000">&lt;%</span><span style="color: #000000">@&nbsp;Page&nbsp;Language</span><span style="color: #000000">=</span><span style="color: #800000">"</span><span style="color: #800000">c#</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;Debug</span><span style="color: #000000">=</span><span style="color: #800000">"</span><span style="color: #800000">true</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
<br />
</span><strong><span style="color: #000000">&lt;%</span><span style="color: #000000">@&nbsp;Register&nbsp;TagPrefix</span><span style="color: #000000">=</span><span style="color: #800000">"</span><span style="color: #800000">Macromedia</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;Namespace</span><span style="color: #000000">=</span><span style="color: #800000">"</span><span style="color: #800000">FlashGateway</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;Assembly</span><span style="color: #000000">=</span><span style="color: #800000">"</span><span style="color: #800000">flashgateway</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">%&gt;</span></strong><span style="color: #000000"><br />
</span><strong><span style="color: #000000">&lt;</span><span style="color: #000000">Macromedia:Flash&nbsp;ID</span><span style="color: #000000">=</span><span style="color: #800000">"</span><span style="color: #800000">Flash1</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;runat</span><span style="color: #000000">=</span><span style="color: #800000">"</span><span style="color: #800000">Server</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">/&gt;</span></strong><span style="color: #000000"><br />
<br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">script&nbsp;language</span><span style="color: #000000">=</span><span style="color: #800000">"</span><span style="color: #800000">C#</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;runat</span><span style="color: #000000">=</span><span style="color: #800000">"</span><span style="color: #800000">server</span><span style="color: #800000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Page_Load(Object&nbsp;sender,&nbsp;EventArgs&nbsp;e)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>Flash1.Result</strong>&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">FlashRemoting服务器时间:</span><span style="color: #800000">"</span><span style="color: #000000">+</span><span style="color: #000000">System.DateTime.Now.ToString(</span><span style="color: #800000">"</span><span style="color: #800000">yyyy-MM-dd&nbsp;hh:mm:ss</span><span style="color: #800000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #000000">&lt;/</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span></div>
</div>
<br />
</div>
<font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;注意加粗的部分，FlashRemoting是个比较特殊的东西，你的页面"<font face="Verdana">TestDemo.aspx</font>"的名称"<font face="Verdana">TestDemo"就是方法名称，方法的代码要写在Page_Load中，然后把返回结果绑定到一个<span style="color: #800000">FlashGateway</span>对象(本例中"Flash1")上才能传递出去。关于FlashRemoting For .Net的详细用法，请查其它资料。</font><br />
</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2).FMS端Main.asc文件<br />
<br />
<div align="center">
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 92%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; height: 350px; background-color: #eeeeee">
<div align="left"><strong><span style="color: #000000">load&nbsp;(</span><span style="color: #000000">"</span><span style="color: #000000">netservices.asc</span><span style="color: #000000">"</span></strong><span style="color: #000000"><strong>);</strong><br />
</span><span style="color: #008000">//<br />
</span><span style="color: #000000">application.onConnect&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;(client,&nbsp;_name)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;//...<br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.acceptConnection&nbsp;(client);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span>//<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NetServices.setDefaultGatewayUrl&nbsp;("</span><span>http://localhost/<strong>RemotingApp</strong>/gateway.aspx");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span>&nbsp;conn&nbsp;=&nbsp;NetServices.createGatewayConnection&nbsp;();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;myService&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;conn.getService&nbsp;(</span><span style="color: #000000">"</span><span style="color: #000000"><strong>RemotingApp</strong></span><span style="color: #000000">"</span><span>,&nbsp;this);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myService.<strong>TestDemo</strong>();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;application.<strong>TestDemo</strong>_Result&nbsp;=</span><span>&nbsp;function&nbsp;(result_obj)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//...<br />
</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;//...<br />
};</span></div>
</div>
</div>
<br />
<font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;同样注意加粗的部分，<strong><span style="color: #000000">load&nbsp;(</span><span style="color: #000000">"</span><span style="color: #000000">netservices.asc</span><span style="color: #000000">"</span></strong><span style="color: #000000"><strong>);</strong></span>要放在最顶行。<br />
<font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font>"<span style="color: #000000"><strong>RemotingApp</strong></span>"就是前边创建的虚拟目录了。<br />
<font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font>conn.getService&nbsp;(<span style="color: #000000">"</span><span style="color: #000000"><strong>RemotingApp</strong></span><span style="color: #000000">"</span><span>,&nbsp;this);这一句</span>这里要非常注意，如果你的aspx页面放在更深一层的目录中，那么<span>这一句中的<span style="color: #000000">"</span><span style="color: #000000"><strong>RemotingApp</strong></span><span style="color: #000000">"</span>，</span>就要带把路径转换为类似命名空间的写法，如&#8220;<span style="color: #000000"><strong>RemotingApp</strong></span>.Folder&#8221;。<br />
<font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font>"<strong>TestDemo</strong>"就是前边<strong>TestDemo</strong>.aspx页面的名称，接受数据的函数使用"Remoting方法名"+"_Result"的格式。<br />
</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3).<font face="Verdana">FMS_FlashRemoting.fla文件</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这个没啥说的，很简单，略了。<br />
<br />
&nbsp;&nbsp;&nbsp; <strong>三、注意事项<br />
</strong><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font>如果遇到不能成功连接和返回数据，请注意：<br />
<font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font>1).安全策略的问题，前边放置"<font face="Verdana"><strong>crossdomain.xml</strong></font>"就是解决这个问题。<br />
<font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font>2).web.config中<font face="Verdana"><strong>system.web</strong></font>节的是否有：<br />
<br />
<div align="center">
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 91.75%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; height: 73px; background-color: #eeeeee">
<div align="left"><span style="color: #0000ff">&lt;</span><span style="color: #800000">httpModules</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">add&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="GatewayController"</span><span style="color: #ff0000">&nbsp;type</span><span style="color: #0000ff">="FlashGateway.Controller.GatewayController,flashgateway"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">httpModules</span><span style="color: #0000ff">&gt;</span></div>
</div>
</div>
<font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><br />
&nbsp;&nbsp;&nbsp; <strong>四、本例的测试运行效果<br />
<br />
</strong><font face="Verdana"><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></font>如下图：<br />
<br />
<div align="center"><img height="420" alt="" src="http://www.cnblogs.com/images/cnblogs_com/yao/FMS_FlashRemoting03.gif" width="707" border="0" /></div>
<br />
<font face="Verdana">
<div><br />
&nbsp;&nbsp;&nbsp; 五、另附两个开发过程中遇到的简单问题<br />
&nbsp;&nbsp;&nbsp; <strong>1.如何查看FMS的服务端trace出的信息？<br />
</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1).打开FMS的管理控制台；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2).View Applications -&gt; { FMSRemotingTest } -&gt; LiveLog；如下图：</div>
<div>&nbsp;
<div align="center"><img height="307" alt="" src="http://www.cnblogs.com/images/cnblogs_com/yao/FMS_FlashRemoting01.gif" width="886" border="0" /><br />
<br />
</div>
</div>
<div><br />
<strong>&nbsp;&nbsp;&nbsp; 2.如何重启FMS应用程序？<br />
</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 修改了FMS服务端的程序，如Main.asc后，需要重启FMS的应用程序才能看到最新的结果，所以如果你改了代码而看不到最新效果，不要恼火，还需要这步操作。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1).打开FMS的管理控制台；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2).Manage Servers -&gt; { FMSRemotingTest } -&gt;&nbsp; 如下图：<br />
</font></div>
<br />
<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/yao/FMS_FlashRemoting02.gif" width="886" border="0" /><br />
<br />
<img src ="http://www.cnblogs.com/yao/aggbug/1041131.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41308/" target="_blank">[新闻]预装 Ubuntu 8.04 的 Dell 笔记本发售</a>]]></description></item></channel></rss>