【Flash OOP 補足その4】 FlashDevelop コードジェネレート機能(Ctrl+Shift+1)のカスタマイズ

の補足はこちらでとりあへず終わり。
最後は、FlashDevelop Beta6 から加わった機能のコードジェネレート機能のカスタマイズ方法。

そもそもコードジェネレート機能って何よ?

答え:クソ便利な機能。
でも、ボクの会社いる人でもあまり使ってない人が多いので画像つきでプッシュしときます。
この機能は、名前の通りにコードを作成してくれる機能で、ショートカットは、Ctrl+Shift+1。文脈に応じてコードの生成が演歌するので、とりあへず色んなところでやってみたら便利さがわかるかと思います。たとえば、、、次みたいにイベントハンドラ関数の作成とかですかね(キャプチャ画像内のカーソルにも注目)。

はじめに、先に未定義のイベントハンドラ関数で addEventListener しておきます。


そのリスナー関数ににカーソル合わせて Ctrl+Shift+1。
すると、次のように生成するコードの候補がでてきます。今回の場合だと、ただのイベントかマウスイベントかですね。


対応したものを選択して Enter を入力するとその関数が生成されます。
一番下にリスナー関数ができたのがわかりますね。

もっと詳しい内容は、本家サイトの方にキャプチャつきで掲載されています。イベントハンドラ関数を作成する以外にも、変数からの getter/setter 関数の作成、未定義変数名から変数・関数の作成、ローカル変数 → クラスメンバーの作成などがあります。本当に便利です。

生成される関数のカスタマイズ

この機能は大変便利ですけど、デフォルトで生成されるコードには空白とか微妙に気に入らなかったりするのでそれをカスタマイズしたくなりますよね。
この生成コードはテンプレートが設定領域の Data/ASCompletion/Generator.txt にあります。内容はこんなカンジです。

ImplementHeader	$(Boundary)\n\n/* INTERFACE {0} */
ImplementPart	\n\n{0}$(CSLB){{\n\t{1}\n}}
Function	{0}$(CSLB){{\n\t\n}}
Variable	{0}$(EntryPoint);
Delegate	{0} function {1}():{2} $(CSLB){{\n\t$(EntryPoint)\n}}
EventHandler	{0} function {1}(e:{2}):{3} $(CSLB){{\n\t$(EntryPoint)\n}}
Getter	{0} function get {1}():{2} {{ $(EntryPoint)return {3}; }}
Setter	{0} function set {1}(value:{2}):{4} $(CSLB){{\n\t$(EntryPoint){3} = value;\n}}
MethodOverride	({0}):{1} $(CSLB){{\n\t$(EntryPoint){2}\n}}

これをテキストエディタを編集すればOKです。編集後は FlashDevelop の再起動が必要なので気をつけてください。

なお、コード生成されるパターン自体はさすがにユーザーがいじれないと思います・・・。もしも知っている方がいましたらお教えくださいまし・・・。

宣伝『FLASH OOP for ActionScript 3.0』

FlashDevelop の使い方・便利な機能から、Flash CS3 との連携、各プロジェクトの違いなどを、一部サンプルを交えて詳しく説明しているつもりの記事を執筆させて頂いた『FLASH OOP for ActionScript 3.0』、よければ買ってみてくださいー。もの凄い執筆陣なのでマジ買いですよー。
FLASH OOP for ActionScript 3.0

Trackbacks

Trackback URL: http://blog.naggg.jp/mt/mt-tb.cgi/126

Comments(1)

コメントありがとうございました!このページを参考にさせていただいて
今コード生成機能を触ってみてますが、これはめちゃくちゃ便利そうですね・・・
アドバイスいただいた「イベントリスナーまわりについては~」の部分は
まだちょっとわからないですけど、そのイベントリスナーに対応する関数が
一発で生成出来るのはかなり感動しました!

あと神懸かったAS3、マジ神っすw 二度爆笑させていただきました:-)
どうぞこれからもよろしくおねがいいたします。

Send Your Comment