右へ1つインデントするツール
Pukiwikiのソースで右1つインデントすると、ソースファイルとして
認識する整形ルールがあるのですが、これが意外と
手作業でやると面倒なので、ソースファイルを
右一つだけインデントするプログラムを作ってみました。
http://nadesi.com/tools/right-indent/EditConv.html
以下、そのソースです。
MXMLのソース
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:TitleWindow x="0" y="0" width="470" height="446" layout="absolute" title="ソース編集"> <mx:TextArea x="10" y="10" width="430" height="356" id="a_txt" fontSize="12" fontStyle="normal" fontFamily="_typewriter"/> <mx:Button label="右一つインデント" width="130" x="10" y="374" click="convIndent()"/> <mx:Button x="148" y="374" label="左スペース1つ削除" width="117" click="convIndentLeft()"/> </mx:TitleWindow> <mx:Script source="EditConv.as"/> </mx:Application>
上記MXMLから取り込まれるActionScriptファイル
// ActionScript file // indent private function convIndent():void { var s:String = a_txt.text; s = replaceStr(s, "\r\n", "\n"); s = replaceStr(s, "\r", "\n"); var r:String = ""; var a:Array = s.split("\n"); var i:int; for (i = 0; i < a.length; i++) { var line:String = a[i]; line = replaceStr(line, "\t", " "); r += " " + line + "\n"; } a_txt.text = r + "\n"; } private function convIndentLeft():void { var r:String = ""; var s:String = a_txt.text; s = replaceStr(s, "\r\n", "\n"); s = replaceStr(s, "\r", "\n"); var a:Array = s.split("\n"); var i:int; for (i = 0; i < a.length; i++) { var line:String = a[i]; if (line.substr(0,1) == " ") { line = line.substr(1); } r += line + "\n"; } a_txt.text = r + "\n"; } private function replaceStr(s:String, a:String, b:String):String { var a_ary:Array = s.split(a); var s_str:String = a_ary.join(b); return s_str; }
はっきり言って、はてなのWiki記法の方が記述が楽が・・・。
文字列の置換は、正規表現を使って以下のような書き方もできるそうです。
s = s.replace(/(\r\n|\r)/g, "\n");
-
-
- -
-
数値を0で埋めて指定の桁数に揃える関数
// 数値を0で埋めて指定の桁数に揃える関数 private function formatZero(n:Number, keta:Number):String { var s:String = String(n); var i:int = 0; while (s.length < keta) { s = "0" + s; } return s; }
こちらも別解を教えていただきました。
private function formatZero(n:Number, keta:uint):String { return ("0000000000000000000000000" + n.toString()).substr(-keta); }
substrにマイナスも指定できるんですよね。
Flex Builder2 で背景色を指定する方法
デフォルトの青っぽい背景色は、Adobe(Macromedia)っぽいけど、
普通の人には変な色なので、白にして欲しかったです。
デフォルトの背景色の変え方、ちょっと迷いましたが以下のようにすれば良いです。
Flex2プロジェクトなら
たとえば、白色なら、以下の感じです。
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" backgroundColor="#FFFFFF">
ActionScriptプロジェクトなら
- メニューから[プロジェクト - プロパティ]を選択。
- ActionScriptコンパイラを選択
- 追加コンパイラ引数に、「-default-background-color=(背景色)」と指定
背景色は、白なら、0xFFFFFF を、黒なら、0x000000と書きます。
Flex2 SDKなら
mxmlc でコンパイルするとき、コンパイルオプションに
「-default-background-color=(背景色)」を追加します。
例えば、Test.mxml のコンパイルで背景所を青色にする時は
以下のように書きます。
mxmlc -default-background-color=0x0000FF Test.mxml
もしくは、ソース内にメタデータで埋め込み
package { import flash.display.Sprite; import flash.text.TextField; [SWF(width="800",height="600",frameRate="24",backgroundColor="#FFFFFF")] public class FirstAS extends Sprite { public function FirstAS() { var a_txt:TextField = new TextField(); a_txt.text = "Hello, World!"; this.addChild(a_txt); } } }