通常のTextFieldだと、複数行指定してやれば勝手に改行してくれる。
だが、ラジオボタンコントロールのラベルは改行してくれない・・・
で、ラジオボタンのTextFieldのwordWrapプロパティとかをいじればよいということ。
FLASH-JP.COM RadioButton コンポーネントの文字を自動改行させたい
だけど、そもそも指定バイト数で折り返したいときってどうすんの?と思って検索したところ、ありがたい記事発見。
yoshiweb.NET-blog ActionScriptで文字判定
この記事を元にチャレンジ。
checkCodeは参照先そのまま。
checkHalfは、バイト数を返すように変更。
getStrBytesTotalは、checkHalfの変更に伴い変更。
setReturnCodeは、オリジナル。
// 指定バイト数(default=60)で折り返し function setReturnCode(str:String, max:int=60):String { var cnt:int = 0; var len:int = str.length; var s:int = 0 var e:int = 0 var buf:String = ''; for (e = 0 ; e < len ; e++ ) { cnt += checkHalf(str.substr(e, 1)); if (cnt >= max) { if (buf.length > 0) { buf += '\r'; } buf += str.substr(s, e-s+1); s = e+1; cnt = 0; } } if (buf.length > 0) { buf += '\r'; } buf += str.substr(s, e-s+1); return buf; } // 文字列のバイト数を求める function getStrBytesTotal(str:String):int { var cnt:int = 0; var len:int = str.length; while (len--) { cnt += checkHalf(str.substr(len, 1)); } return cnt; } // 指定文字のバイト数を求める→全角なら2、半角なら1を返す function checkHalf(str:String):int{ return (checkCode(str, 0x00, 0x7f) || checkCode(str, 0xFF61,0xFF9F)) ? 1 : 2; } // 全半角判定→全角ならfalse、半角ならtrueを返す function checkCode(str:String, min:uint, max:uint) { var len:uint = str.length; while (len--) { var num:uint = str.substr(len, 1).charCodeAt(0); if (num < min || num > max) { return false; break; } } return true; }
とりあえず、いい塩梅にはなりました。
(あんばいって塩梅って書くんだねぇ・・・よい塩加減なのね)