Home > FlashDevelop | Progression > マクロの実行方法

マクロの実行方法

FlashDevelopのフォーラムに、新年早々matsumosさんbkzenさんが素敵なマクロを作成&公開してくださってます。

どんなものかというと、Progressionのコマンド内の選択した箇所のソースを、外部クラスファイルに変換してくれるというマクロです。

マクロってどうやって実行するの? という方がいらっしゃるかもしれないので、一応エントリしておきます。

以前にbkzenさんが、『FlashDevelop Macro ExecuteScript で無限の可能性』という記事をエントリされているので、ご存じの方もいらっしゃるかも知れませんが…

ファイルを保存しておく

フォーラムのトピック内のbkzenさんの「ちょっと改造して、テンプレートが保存されていない場合、新たにテンプレートを保存するようにしました。」と書かれているところのコードをコピーして、拡張子を.csで保存しておきます。(ファイル名:CommandFromSelection.cs)

僕の場合は、『Progression4用FlashDevelopテンプレート』を使っているので、.cs内のテンプレートのパスを以下の様に変更しています。

templatePath = PathHelper.TemplateDir + "\\ProjectFiles\\AS3Project\\Progression4" + TEMP_PATH;

保存したら、任意の箇所(今回はCドライブ直下に、macrosというフォルダを作成)に置いておきます。

FlashDevelop側からマクロを実行

では、早速マクロを実行してみましょう!

Progressionのプロジェクトファイルを起動し、FlashDevelopを立ち上げておきます。

で、外部ファイル化したいコードをドラッグして選択しておいて、Mactos>Execute Scriptを選択します。

protected override function atSceneLoad():void {
	addCommand(
				// ここから
				new Trace("新年"),
				new Trace("明けまして"),
				new Trace("おめでとう"),
				new Trace("ございます!")
				// ここまで
			);
}

上記の様なコードだったら、//ここから~//ここまでの中身(new Traceの部分)をドラッグして選択しておくってことです。

そうすると、ファイルを開くダイアログボックスが現れるので、そこでC>macros>CommandFromSelection.csを選択します。

ファイル名は何にしますか? と聞かれるので、そこで任意の名前を入力します。(今回は、TraceComとしてみました)

すると先のコードが、以下のように置き換わります。

protected override function atSceneLoad():void {
	addCommand(
				// ここから
				new TraceCom()
				// ここまで
			);
}

で、プロジェクト内にTraceCom.asファイルが作成されます。

そちらはこんな感じになります。

   (略)
public class TraceCom extends SerialList
   {
      public function TraceCom( initObject:Object = null )
      {
         super( initObject );

         addCommand(
				new Trace("新年"),
				new Trace("明けまして"),
				new Trace("おめでとう"),
				new Trace("ございます!")
         );
      }
   (略)

う~ん、凄いっ!

と、まぁ、こんな感じなんですが、毎回実行するファイルを選択するのって、面倒ですよねぇ…

そんな時は、Edit Macrosを設定しておくと楽チンです!

Edit Macrosの設定

Macros>Edit Macrosを選択します。

デフォルトで4つリストがあるかと思います。追加したいので、Addボタンを押します。

Untitledとなっているものを選択して、Labelに任意の名前を設定します。(今回はCommandFromSelectionにしてみました)

次に、Entriesの箇所を選択すると、右側に現れる…というボタンをクリックし、文字列コレクションエディタを開いて、以下のソースを記述します。

ExecuteScript|Development;C:\macros\CommandFromSelection.cs

このように設定してから、もう一度、マクロを実行してみましょう!

外部ファイル化したいコマンドを選択してから、Macros>CommandFromSelectionを選択します。

あとは(先の場合と)一緒です。

メニューから選択するの面倒! っていう方は、ショットカットキーも設定可能です。

Macros>Edit MacrosからCommandFromSelectionを選択し、Shortcutの箇所に任意のキーを割り当てておけばOKです。

Cドライブ直下は…

マクロのファイルをCドライブ直下ではなく、FlashDevelopのフォルダ内に入れておきたいって方は、こうしておくといいかと思います。

★Windows XPの場合

Local Settingの場合(Tools>Application Fileの方)
ExecuteScript|Development;$(UserAppDir)\macros\CommandFromSelection.cs

FlashDevelopフォルダ以下に、macrosというフォルダ(Snippetsとかと同一階層)を作成し、そこに.csファイルを設置しておきます。

マクロの文字列コレクションエディタには、$(UserAppDir)という記述を付け加えてあげます。

$(UserAppDir)の箇所を$(BaseDir)にしても、同じように動作するみたいです。

Program Filesの場合
ExecuteScript|Development;$(AppDir)\macros\CommandFromSelection.cs

どうしてもProgram Filesの方がいいという方は、Program FilesのFlashDevelopフォルダ内に、macrosフォルダを作成、ファイルを配置した上で、文字列コレクションの$(UserAppDir)を$(AppDir)に変更してあげればOKです。

ついでなので、Edit Macrosのその他の設定も書いておきます。

AutoRun

デフォルトではfalseになっています。

これはFlashDevelopを起動した際に、このマクロを実行するかどうか? の設定です。

試しにこれをtrueにしてみると…

こんな感じで怒られます。

今回は、テキストをドラッグ→外部クラス化するマクロを実行したいので、ここの値はfalseにしておきましょう!

Image

これは何かというと、アイコン画像を適用させる場合に設定します。

試しに、Imageに187と設定してみます。すると…

こんな感じでアイコンが表示されます。

その数値はどっから来たの? と思われた方は、『Icon Composerって便利!』というエントリに詳しく書いてありますので、そちらをご覧ください。

数値は複数アイコンの指定も可能です。

Imageに、37|16|-1|-1と設定してみると…

こんな感じで複数のアイコンを表示させることも可能です。

ここら辺りは、FlashDevelop>Setting>MainMenu.xml内のimageに値を設定するのと、一緒ですね。

追記

マクロ機能を使って作成する外部クラスファイルですが、SerialList限定になっていますよね?

SerialかParallelを選択可能にしたら便利かな? と思ったので、ちょっと試してみました。

CommandFromSelection.csの89行目あたりの記述

public class $(FileName) extends SerialList $(CSLB){

となっているところを、以下のように変更

public class $(FileName) extends $$(ListType=SerialList,ParallelList) $(CSLB){

こうしておくと、コードを選択→マクロを実行→ファイル名を指定の後で、SerialListかParallelListどちらですか? みたいなダイアログが出るので、どちらかを選択してOKを押すと、そちらの値が適用されます。

この方法は、自作Snippetsを作る場合と一緒ですね。

注意点

※テンプレートの保存先(以下のパス)に既にファイルがある場合

templatePath = PathHelper.TemplateDir + "\\ProjectFiles\\AS3Project\\Progression4" + TEMP_PATH;

その場合は、C>macros>CommandFromSelection.csを修正しただけでは、この手法が使えません。

テンプレートの保存先にあるファイルも直接修正、もしくは、(一端)このファイルを削除してあげる必要があります。

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://flabaka.com/blog/wp-trackback.php?p=2102
Listed below are links to weblogs that reference
マクロの実行方法 from flabaka

Home > FlashDevelop | Progression > マクロの実行方法

Search
Feeds
Meta

Return to page top