﻿<?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>BlogJava-AntiquMan-随笔分类-Flex</title><link>http://www.blogjava.net/AntiquMan/category/40188.html</link><description /><language>zh-cn</language><lastBuildDate>Sat, 04 Jul 2009 17:12:32 GMT</lastBuildDate><pubDate>Sat, 04 Jul 2009 17:12:32 GMT</pubDate><ttl>60</ttl><item><title>扩展TextField,合理计算中文字符长度</title><link>http://www.blogjava.net/AntiquMan/archive/2009/07/03/285350.html</link><dc:creator>AntiquMan</dc:creator><author>AntiquMan</author><pubDate>Fri, 03 Jul 2009 06:47:00 GMT</pubDate><guid>http://www.blogjava.net/AntiquMan/archive/2009/07/03/285350.html</guid><wfw:comment>http://www.blogjava.net/AntiquMan/comments/285350.html</wfw:comment><comments>http://www.blogjava.net/AntiquMan/archive/2009/07/03/285350.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/AntiquMan/comments/commentRss/285350.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/AntiquMan/services/trackbacks/285350.html</trackback:ping><description><![CDATA[Code
<div class="syntaxhighlighter " id="highlighter_830494">
<div class="bar                                                                      ">&nbsp;</div>
<div class="lines">
<div class="line alt1"><code class="number">01.</code><span class="content"><span class="block" style="margin-left: 0px! important"><code class="comments">//Copyright &#169; 2009. <a href="http://l4cd.net/">Http://L4cd.Net</a> All Rights Reserved. </code></span></span></div>
<div class="line alt2"><code class="number">02.</code><span class="content"><span class="block" style="margin-left: 0px! important"><code class="color3">package</code> <code class="plain">net.L4cd.display </code></span></span></div>
<div class="line alt1"><code class="number">03.</code><span class="content"><span class="block" style="margin-left: 0px! important"><code class="plain">{ </code></span></span></div>
<div class="line alt2"><code class="number">04.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 28px! important"><code class="keyword">import</code> <code class="plain">flash.events.Event; </code></span></span></div>
<div class="line alt1"><code class="number">05.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 28px! important"><code class="keyword">import</code> <code class="plain">flash.events.TextEvent; </code></span></span></div>
<div class="line alt2"><code class="number">06.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 28px! important"><code class="keyword">import</code> <code class="plain">flash.text.TextField; </code></span></span></div>
<div class="line alt1"><code class="number">07.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 28px! important"><code class="keyword">import</code> <code class="plain">flash.utils.ByteArray; </code></span></span></div>
<div class="line alt2"><code class="number">08.</code><span class="content"><code class="spaces">&nbsp;</code><span class="block" style="margin-left: 7px! important">&nbsp;</span></span></div>
<div class="line alt1"><code class="number">09.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 28px! important"><code class="comments">/** </code></span></span></div>
<div class="line alt2"><code class="number">10.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 35px! important"><code class="comments">* 扩展TextField类,中文以2字符长度计算 </code></span></span></div>
<div class="line alt1"><code class="number">11.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 35px! important"><code class="comments">* </code></span></span></div>
<div class="line alt2"><code class="number">12.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 35px! important"><code class="comments">* @author L4cd.Net </code></span></span></div>
<div class="line alt1"><code class="number">13.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 35px! important"><code class="comments">* @playerversion Flash player 9 </code></span></span></div>
<div class="line alt2"><code class="number">14.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 35px! important"><code class="comments">* @langversion 3.0 </code></span></span></div>
<div class="line alt1"><code class="number">15.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 35px! important"><code class="comments">* @version 2009-06-16 </code></span></span></div>
<div class="line alt2"><code class="number">16.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 35px! important"><code class="comments">*/</code></span></span></div>
<div class="line alt1"><code class="number">17.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 28px! important"><code class="keyword">public</code> <code class="color3">class</code> <code class="plain">TextFieldExt </code><code class="keyword">extends</code> <code class="plain">TextField </code></span></span></div>
<div class="line alt2"><code class="number">18.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 28px! important"><code class="plain">{ </code></span></span></div>
<div class="line alt1"><code class="number">19.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 56px! important"><code class="keyword">private</code> <code class="variable">var</code> <code class="plain">_maxChars:</code><code class="keyword">int</code> <code class="plain">= -</code><code class="value">1</code><code class="plain">; </code></span></span></div>
<div class="line alt2"><code class="number">20.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 56px! important"><code class="keyword">public</code> <code class="color3">function</code> <code class="plain">TextFieldExt() </code></span></span></div>
<div class="line alt1"><code class="number">21.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 56px! important"><code class="plain">{ </code></span></span></div>
<div class="line alt2"><code class="number">22.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 84px! important"><code class="keyword">super</code><code class="plain">(); </code></span></span></div>
<div class="line alt1"><code class="number">23.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 91px! important">&nbsp;</span></span></div>
<div class="line alt2"><code class="number">24.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 56px! important"><code class="plain">} </code></span></span></div>
<div class="line alt1"><code class="number">25.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 56px! important"><code class="keyword">override</code> <code class="keyword">public</code> <code class="color3">function</code> <code class="keyword">get</code> <code class="plain">maxChars():</code><code class="keyword">int</code></span></span></div>
<div class="line alt2"><code class="number">26.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 56px! important"><code class="plain">{ </code></span></span></div>
<div class="line alt1"><code class="number">27.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 84px! important"><code class="keyword">return</code> <code class="plain">_maxChars; </code></span></span></div>
<div class="line alt2"><code class="number">28.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 56px! important"><code class="plain">} </code></span></span></div>
<div class="line alt1"><code class="number">29.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 56px! important"><code class="keyword">override</code> <code class="keyword">public</code> <code class="color3">function</code> <code class="keyword">set</code> <code class="plain">maxChars(value:</code><code class="keyword">int</code><code class="plain">):</code><code class="keyword">void</code></span></span></div>
<div class="line alt2"><code class="number">30.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 56px! important"><code class="plain">{ </code></span></span></div>
<div class="line alt1"><code class="number">31.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 84px! important"><code class="plain">_maxChars = value; </code></span></span></div>
<div class="line alt2"><code class="number">32.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 84px! important"><code class="keyword">if</code><code class="plain">(maxChars&lt;</code><code class="value">0</code><code class="plain">) </code></span></span></div>
<div class="line alt1"><code class="number">33.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 84px! important"><code class="plain">{ </code></span></span></div>
<div class="line alt2"><code class="number">34.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 112px! important"><code class="plain">removeEventListener(TextEvent.TEXT_INPUT,input);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </code></span></span></div>
<div class="line alt1"><code class="number">35.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 84px! important"><code class="plain">}</code><code class="keyword">else</code></span></span></div>
<div class="line alt2"><code class="number">36.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 84px! important"><code class="plain">{ </code></span></span></div>
<div class="line alt1"><code class="number">37.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 112px! important"><code class="plain">addEventListener(TextEvent.TEXT_INPUT,input); </code></span></span></div>
<div class="line alt2"><code class="number">38.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 112px! important"><code class="plain">text = getTextByCharLength(text,maxChars); </code></span></span></div>
<div class="line alt1"><code class="number">39.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 84px! important"><code class="plain">} </code></span></span></div>
<div class="line alt2"><code class="number">40.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 56px! important"><code class="plain">} </code></span></span></div>
<div class="line alt1"><code class="number">41.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 56px! important"><code class="keyword">override</code> <code class="keyword">public</code> <code class="color3">function</code> <code class="keyword">get</code> <code class="plain">length():</code><code class="keyword">int</code></span></span></div>
<div class="line alt2"><code class="number">42.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 56px! important"><code class="plain">{ </code></span></span></div>
<div class="line alt1"><code class="number">43.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 84px! important"><code class="keyword">return</code> <code class="plain">getCharLength(text); </code></span></span></div>
<div class="line alt2"><code class="number">44.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 56px! important"><code class="plain">} </code></span></span></div>
<div class="line alt1"><code class="number">45.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 56px! important"><code class="keyword">private</code> <code class="color3">function</code> <code class="plain">input(e:TextEvent):</code><code class="keyword">void</code></span></span></div>
<div class="line alt2"><code class="number">46.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 56px! important"><code class="plain">{ </code></span></span></div>
<div class="line alt1"><code class="number">47.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 84px! important"><code class="comments">//拦截并阻止textinput事件,手动处理内容输入 </code></span></span></div>
<div class="line alt2"><code class="number">48.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 84px! important"><code class="variable">var</code> <code class="plain">textField:TextField = e.currentTarget </code><code class="keyword">as</code> <code class="plain">TextField; </code></span></span></div>
<div class="line alt1"><code class="number">49.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 84px! important"><code class="variable">var</code> <code class="plain">temp:</code><code class="keyword">String</code> <code class="plain">= getTextByCharLength(e.text,maxChars - getCharLength(text) + getCharLength(selectedText)); </code></span></span></div>
<div class="line alt2"><code class="number">50.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 84px! important"><code class="variable">var</code> <code class="plain">index:</code><code class="keyword">int</code> <code class="plain">= selectionBeginIndex; </code></span></span></div>
<div class="line alt1"><code class="number">51.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 84px! important"><code class="plain">replaceText(selectionBeginIndex,selectionEndIndex,temp); </code></span></span></div>
<div class="line alt2"><code class="number">52.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 84px! important"><code class="plain">setSelection(index+temp.length,index+temp.length); </code></span></span></div>
<div class="line alt1"><code class="number">53.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 84px! important"><code class="plain">dispatchEvent(</code><code class="keyword">new</code> <code class="plain">Event(Event.CHANGE,</code><code class="keyword">true</code><code class="plain">)); </code></span></span></div>
<div class="line alt2"><code class="number">54.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 84px! important"><code class="plain">e.preventDefault(); </code></span></span></div>
<div class="line alt1"><code class="number">55.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 56px! important"><code class="plain">} </code></span></span></div>
<div class="line alt2"><code class="number">56.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 56px! important"><code class="comments">/** </code></span></span></div>
<div class="line alt1"><code class="number">57.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 63px! important"><code class="comments">* 获取字符长度,一个中文算2长度 </code></span></span></div>
<div class="line alt2"><code class="number">58.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 63px! important"><code class="comments">* @param txt </code></span></span></div>
<div class="line alt1"><code class="number">59.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 63px! important"><code class="comments">* @return 返回长度值 </code></span></span></div>
<div class="line alt2"><code class="number">60.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 63px! important"><code class="comments">*/</code>&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div>
<div class="line alt1"><code class="number">61.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 56px! important"><code class="keyword">private</code> <code class="color3">function</code> <code class="plain">getCharLength(txt:</code><code class="keyword">String</code><code class="plain">):</code><code class="keyword">int</code></span></span></div>
<div class="line alt2"><code class="number">62.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 56px! important"><code class="plain">{ </code></span></span></div>
<div class="line alt1"><code class="number">63.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 84px! important"><code class="variable">var</code> <code class="plain">byte:ByteArray = </code><code class="keyword">new</code> <code class="plain">ByteArray(); </code></span></span></div>
<div class="line alt2"><code class="number">64.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 84px! important"><code class="plain">byte.writeMultiByte(txt,</code><code class="string">"gb2312"</code><code class="plain">); </code></span></span></div>
<div class="line alt1"><code class="number">65.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 84px! important"><code class="plain">byte.position = </code><code class="value">0</code><code class="plain">; </code></span></span></div>
<div class="line alt2"><code class="number">66.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 84px! important"><code class="keyword">return</code> <code class="plain">byte.bytesAvailable; </code></span></span></div>
<div class="line alt1"><code class="number">67.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 56px! important"><code class="plain">} </code></span></span></div>
<div class="line alt2"><code class="number">68.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 56px! important"><code class="comments">/** </code></span></span></div>
<div class="line alt1"><code class="number">69.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 63px! important"><code class="comments">* 截取指定长度的文本内容,一个中文算2长度 </code></span></span></div>
<div class="line alt2"><code class="number">70.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 63px! important"><code class="comments">* @param txt 需要截取的文本 </code></span></span></div>
<div class="line alt1"><code class="number">71.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 63px! important"><code class="comments">* @param length 需要截取的长度 </code></span></span></div>
<div class="line alt2"><code class="number">72.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 63px! important"><code class="comments">* @return 截取后的内容 </code></span></span></div>
<div class="line alt1"><code class="number">73.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 63px! important"><code class="comments">*/</code>&nbsp;&nbsp;&nbsp;&nbsp;</span></span></div>
<div class="line alt2"><code class="number">74.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 56px! important"><code class="keyword">private</code> <code class="color3">function</code> <code class="plain">getTextByCharLength(txt:</code><code class="keyword">String</code><code class="plain">,length:</code><code class="keyword">int</code><code class="plain">):</code><code class="keyword">String</code></span></span></div>
<div class="line alt1"><code class="number">75.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 56px! important"><code class="plain">{ </code></span></span></div>
<div class="line alt2"><code class="number">76.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 84px! important"><code class="keyword">if</code><code class="plain">(length&lt;</code><code class="value">1</code><code class="plain">)</code><code class="keyword">return</code> <code class="string">""</code><code class="plain">; </code></span></span></div>
<div class="line alt1"><code class="number">77.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 84px! important"><code class="variable">var</code> <code class="plain">byte:ByteArray = </code><code class="keyword">new</code> <code class="plain">ByteArray(); </code></span></span></div>
<div class="line alt2"><code class="number">78.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 84px! important"><code class="plain">byte.writeMultiByte(txt,</code><code class="string">"gb2312"</code><code class="plain">); </code></span></span></div>
<div class="line alt1"><code class="number">79.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 84px! important"><code class="plain">byte.position = </code><code class="value">0</code><code class="plain">; </code></span></span></div>
<div class="line alt2"><code class="number">80.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 84px! important"><code class="keyword">return</code> <code class="plain">byte.readMultiByte(Math.min(length,byte.bytesAvailable),</code><code class="string">"gb2312"</code><code class="plain">); </code></span></span></div>
<div class="line alt1"><code class="number">81.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 56px! important"><code class="plain">} </code></span></span></div>
<div class="line alt2"><code class="number">82.</code><span class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><span class="block" style="margin-left: 28px! important"><code class="plain">} </code></span></span></div>
<div class="line alt1"><code class="number">83.</code><span class="content"><span class="block" style="margin-left: 0px! important"><code class="plain">}</code></span></span></div>
</div>
</div>
<br />
<br />
<br />
<br />
调用方法和普通TextField无异
<div class="syntaxhighlighter " id="highlighter_857882">
<div class="bar               ">
<div class="toolbar"><a class="item viewSource" title="查看源码" style="width: 16px; height: 16px" href="http://l4cd.net/blog/article.asp?id=139#viewSource" highlighterid="highlighter_857882" commandname="viewSource">查看源码</a><a class="item printSource" title="打印" style="width: 16px; height: 16px" href="http://l4cd.net/blog/article.asp?id=139#printSource" highlighterid="highlighter_857882" commandname="printSource">打印</a><a class="item about" title="关于此插件" style="width: 16px; height: 16px" href="http://l4cd.net/blog/article.asp?id=139#about" highlighterid="highlighter_857882" commandname="about">关于此插件</a></div>
</div>
<div class="lines">
<div class="line alt1"><code class="number">1.</code><span class="content"><span class="block" style="margin-left: 0px! important"><code class="keyword">import</code> <code class="plain">net.L4cd.display.TextFieldExt </code></span></span></div>
<div class="line alt2"><code class="number">2.</code><span class="content"><span class="block" style="margin-left: 0px! important"><code class="variable">var</code> <code class="plain">ext:TextFieldExt = </code><code class="keyword">new</code> <code class="plain">TextFieldExt(); </code></span></span></div>
<div class="line alt1"><code class="number">3.</code><span class="content"><span class="block" style="margin-left: 0px! important"><code class="plain">ext.maxChars = </code><code class="value">15</code><code class="plain">; </code></span></span></div>
<div class="line alt2"><code class="number">4.</code><span class="content"><span class="block" style="margin-left: 0px! important"><code class="plain">addChild(ext);</code></span></span></div>
</div>
</div>
<br />
<br />
<br />
<br />
<br />
一般的输入,粘贴等操作均没问题..<br />
直接对text进行赋值没有进行限制 (原来的TextField也没限制)..<br />
如需限制~可以调用一次maxChars = maxChars即可.. 
<img src ="http://www.blogjava.net/AntiquMan/aggbug/285350.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/AntiquMan/" target="_blank">AntiquMan</a> 2009-07-03 14:47 <a href="http://www.blogjava.net/AntiquMan/archive/2009/07/03/285350.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>flex中文日历</title><link>http://www.blogjava.net/AntiquMan/archive/2009/06/16/282666.html</link><dc:creator>AntiquMan</dc:creator><author>AntiquMan</author><pubDate>Tue, 16 Jun 2009 11:28:00 GMT</pubDate><guid>http://www.blogjava.net/AntiquMan/archive/2009/06/16/282666.html</guid><wfw:comment>http://www.blogjava.net/AntiquMan/comments/282666.html</wfw:comment><comments>http://www.blogjava.net/AntiquMan/archive/2009/06/16/282666.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/AntiquMan/comments/commentRss/282666.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/AntiquMan/services/trackbacks/282666.html</trackback:ping><description><![CDATA[<br />
&nbsp;&lt;mx:DateField x="46" y="299" yearNavigationEnabled="true" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dayNames="[日,一,二,三,四,五,六]" monthNames="[一月,二月,三月,四月,五月,六月,七月,八月,九月,十,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 十一月,十二月]" formatString="YYYY-MM-DD"/&gt; 
<img src ="http://www.blogjava.net/AntiquMan/aggbug/282666.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/AntiquMan/" target="_blank">AntiquMan</a> 2009-06-16 19:28 <a href="http://www.blogjava.net/AntiquMan/archive/2009/06/16/282666.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>flex String 相关处理</title><link>http://www.blogjava.net/AntiquMan/archive/2009/06/11/281463.html</link><dc:creator>AntiquMan</dc:creator><author>AntiquMan</author><pubDate>Thu, 11 Jun 2009 06:14:00 GMT</pubDate><guid>http://www.blogjava.net/AntiquMan/archive/2009/06/11/281463.html</guid><wfw:comment>http://www.blogjava.net/AntiquMan/comments/281463.html</wfw:comment><comments>http://www.blogjava.net/AntiquMan/archive/2009/06/11/281463.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/AntiquMan/comments/commentRss/281463.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/AntiquMan/services/trackbacks/281463.html</trackback:ping><description><![CDATA[<p><span style="background-color: #ffffff">String类是ActionScript中描述字符串的类. 该类提供了处理字符串的属性与方法. 可以使用String()方法将各种类型的对象<strong style="color: black; background-color: #99ff99">转换</strong>为Sring.</span></p>
<p>&nbsp;</p>
<p><span style="background-color: #ffffff">String是AS中文本的基础.一个字符串由零个或零个以上的字符组成.AS支持<strong style="color: black; background-color: #a0ffff"><span>Unicode</span></strong>和ASCII两种文本编码格式.String可以通过直接赋值和new关键字两种方式创建.由单引号或双引号表示,必要的时候应使用转义字符&#8217;/&#8217;.</span></p>
<p>&nbsp;</p>
<h4><span style="background-color: #ffffff">Public Properties</span></h4>
<p>&nbsp;</p>
<p><span style="background-color: #ffffff">length:int</span></p>
<p>&nbsp;</p>
<p><span style="background-color: #ffffff">返回该String的长度.</span></p>
<p>&nbsp;</p>
<h4><span style="background-color: #ffffff">Public Methods</span></h4>
<p>&nbsp;</p>
<p><span style="background-color: #ffffff">String(val:String): 构造函数,新建一个String.<br />
<br />
charAt(index:Number=0):Number: 返回在某个inidex的字符<br />
<br />
charCodeAt(index:Number=0):Number 返回某个index的字符对应的<strong style="color: black; background-color: #a0ffff">Unicode</strong>字符码<br />
<br />
concat(..args):Stirng: 连接两个字符串.<br />
<br />
fromCharCode(charCodes):String 将某<strong style="color: black; background-color: #a0ffff">Unicode</strong>字符码<strong style="color: black; background-color: #99ff99">转换</strong>为String<br />
<br />
indexOf(): 从左向右找到的第一个目标的index<br />
<br />
lastIndexOf(): 从左向右最后一个&#8230;也就是从右向左第一个.<br />
<br />
localeCompare(): 判断连个字符串是否完全相同, 若返回值为0,则表示相同,其他值表示不同<br />
<br />
replace:替换<br />
<br />
search(): 从左向右第一个目标的index<br />
<br />
slice(): 返回连个index之间的String<br />
<br />
split(): 使用间隔符,将String分割为多个String,并放入数组中.<br />
<br />
subStr(): 从某index开始向后的特定数目内返回的String<br />
<br />
subString(): 类似slice();</span></p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools">Flex代码 </div>
</div>
<ol class="dp-default">
    <li><span><span>public&nbsp;function&nbsp;init():void&nbsp;{ &nbsp;&nbsp;</span></span>
    <li><span>&nbsp;var&nbsp;s:String&nbsp;=&nbsp;</span><span class="string">"liguoliang"</span><span>; &nbsp;&nbsp;</span></span>
    <li><span>&nbsp;var&nbsp;s1:String&nbsp;=&nbsp;</span><span class="string">".com"</span><span>; &nbsp;&nbsp;</span></span>
    <li><span>&nbsp;var&nbsp;s2:String&nbsp;=&nbsp;</span><span class="string">"liguoliang"</span><span>; &nbsp;&nbsp;</span></span>
    <li><span>&nbsp;trace(</span><span class="string">"s的长度:&nbsp;"</span><span>&nbsp;+&nbsp;s.length); &nbsp;&nbsp;</span></span>
    <li><span>&nbsp;trace(</span><span class="string">"第0个字符:&nbsp;"</span><span>&nbsp;+&nbsp;s.charAt(</span><span class="number">0</span><span>)); &nbsp;&nbsp;</span></span>
    <li><span>&nbsp;trace(</span><span class="string">"s连接s1:&nbsp;"</span><span>&nbsp;+&nbsp;s.concat(s1)); &nbsp;&nbsp;</span></span>
    <li><span>&nbsp;trace(</span><span class="string">"65对应的char:&nbsp;"</span><span>&nbsp;+&nbsp;String.fromCharCode(</span><span class="number">65</span><span>)); &nbsp;&nbsp;</span></span>
    <li><span>&nbsp;trace(</span><span class="string">"第一个l的位置"</span><span>&nbsp;+&nbsp;s.indexOf(</span><span class="string">"l"</span><span>)); &nbsp;&nbsp;</span></span>
    <li><span>&nbsp;trace(</span><span class="string">"从index为2的字符开始向右找到的第一个l的index:&nbsp;"</span><span>&nbsp;+&nbsp;s.indexOf(</span><span class="string">"l"</span><span>,</span><span class="number">1</span><span>)); &nbsp;&nbsp;</span></span>
    <li><span>&nbsp;trace(</span><span class="string">"从右向做找到的第一个l的index:&nbsp;"</span><span>&nbsp;+&nbsp;s.lastIndexOf(</span><span class="string">"l"</span><span>)); &nbsp;&nbsp;</span></span>
    <li><span>&nbsp;trace(s.localeCompare(s2));&nbsp;//如果返回值为零,则表示两个字符串完全相同,&nbsp;如果返回值非零,则表示不同. &nbsp;&nbsp;</span>
    <li><span>&nbsp;trace(</span><span class="string">"将li替换为s2:&nbsp;"</span><span>+&nbsp;s.replace(</span><span class="string">"li"</span><span>,&nbsp;s2)&nbsp;+&nbsp;</span><span class="string">"&nbsp;&nbsp;"</span><span>&nbsp;+&nbsp;s); &nbsp;&nbsp;</span></span>
    <li><span>&nbsp;trace(</span><span class="string">"从左向右搜索到的第一个L:&nbsp;"</span><span>&nbsp;+&nbsp;s.search(</span><span class="string">"l"</span><span>)); &nbsp;&nbsp;</span></span>
    <li><span>&nbsp;trace(</span><span class="string">"子字符串:&nbsp;"</span><span>&nbsp;+&nbsp;s.slice(</span><span class="number">0</span><span>,&nbsp;</span><span class="number">1</span><span>));&nbsp;//不包括最后一个...如果参数为空,则置为-</span><span class="number">1</span><span>.两参数都为空时,取全部 &nbsp;&nbsp;</span></span>
    <li><span>&nbsp;trace(</span><span class="string">"子字符串:从index为0开始,取两个字符&nbsp;"</span><span>&nbsp;+&nbsp;s.substr(</span><span class="number">0</span><span>,&nbsp;</span><span class="number">2</span><span>));//也不包括最后一个... &nbsp;&nbsp;</span></span>
    <li><span>&nbsp;trace(</span><span class="string">"子字符串:&nbsp;"</span><span>&nbsp;+&nbsp;s.substring(</span><span class="number">0</span><span>,&nbsp;</span><span class="number">1</span><span>)); &nbsp;&nbsp;</span></span>
    <li><span>&nbsp;trace(s.split(</span><span class="string">"i"</span><span>));&nbsp;//返回l,guol,ang,若将最大值限制为</span><span class="number">2</span><span>,则表示数组中进放入</span><span class="number">2</span><span>个返回l,guol &nbsp;&nbsp;</span></span>
    <li><span>}&nbsp;&nbsp;</span> </li>
</ol>
</div>
<pre class="flex" style="display: none" name="code">public function init():void {
var s:String = "liguoliang";
var s1:String = ".com";
var s2:String = "liguoliang";
trace("s的长度: " + s.length);
trace("第0个字符: " + s.charAt(0));
trace("s连接s1: " + s.concat(s1));
trace("65对应的char: " + String.fromCharCode(65));
trace("第一个l的位置" + s.indexOf("l"));
trace("从index为2的字符开始向右找到的第一个l的index: " + s.indexOf("l",1));
trace("从右向做找到的第一个l的index: " + s.lastIndexOf("l"));
trace(s.localeCompare(s2)); //如果返回值为零,则表示两个字符串完全相同, 如果返回值非零,则表示不同.
trace("将li替换为s2: "+ s.replace("li", s2) + "  " + s);
trace("从左向右搜索到的第一个L: " + s.search("l"));
trace("子字符串: " + s.slice(0, 1)); //不包括最后一个...如果参数为空,则置为-1.两参数都为空时,取全部
trace("子字符串:从index为0开始,取两个字符 " + s.substr(0, 2));//也不包括最后一个...
trace("子字符串: " + s.substring(0, 1));
trace(s.split("i")); //返回l,guol,ang,若将最大值限制为2,则表示数组中进放入2个返回l,guol
}
</pre>
<p>&nbsp;</p>
<p><span style="background-color: #ffffff">字符串大小写<strong style="color: black; background-color: #99ff99">转换</strong>:flexstr.toLowerCase(); flexstr.toUpperCase();<br />
<br />
其他对象<strong style="color: black; background-color: #99ff99">转换</strong>为String.在默认情况下,所有的AS对象都可以<strong style="color: black; background-color: #99ff99">转换</strong>为String类型.每一个类都有一个toString方法.<br />
<br />
通过toString可以将对象<strong style="color: black; background-color: #99ff99">转换</strong>为String.</span></p>
<img src ="http://www.blogjava.net/AntiquMan/aggbug/281463.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/AntiquMan/" target="_blank">AntiquMan</a> 2009-06-11 14:14 <a href="http://www.blogjava.net/AntiquMan/archive/2009/06/11/281463.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>