- 2009/12/02 20:52
- UnitTest
この記事を読んでいて、「条件つきコンパイル」というキーワードにぶつかったので、メモ。
結論。
条件付きコンパイルで設定した定数で、特定のコードやクラスをコンパイルから除外できるよー。
条件付きコンパイルのやり方
[ファイル]→[パブリッシュ設定]→[Action Script 3.0 設定] で、「Action Script 3.0 の詳細設定」ウィンドウを開く。
で、コードの中に、コンパイルされたくない部分を、こんな感じで書く。
//
config namespace UNKO; // config アクセス制御子(?:初めてみた)で、namespace を定義
UNKO::TEST_UNKO { trace("うんこンパイル"); }
//
「ActionScript 3.0 の詳細設定」ウィンドウで設定した定数を true にしてコンパイルして実行すると、
トレースが実行される。
定数を false にしてコンパイルして実行すると、トレースされない。
このやり方、まるっとメソッドを内包して書いてもイケます。
//
config namespace UNKO;
UNKO::TEST_UNKO { unkoFunc(); }
UNKO::TEST_UNKO {
private function unkoFunc():void {
trace("うんこンパイルなファンクション")
}
}
定数が true であると、トレースが実行されます。
さらに。
class のアクセス制御子に書く事もできます。
//
config namespace UNKO;
UNKO::TEST_UNKO class UnkoScene extends SceneObject
{
/**
* 新しい UnkoScene インスタンスを作成します。
*/
public function UnkoScene( name:String = null, initObject:Object = null ) {
// 親クラスを初期化する
super( name, initObject );
// シーンタイトルを設定します。
title = "title";
}
...
こうなると、クラスごとコンパイルされません。
アサーションの文を入れてたり、デバッガと通信用のためのクラスだったり、リリースビルドの時にいらないものを
この定数(名前空間?)を指定してやると、コンパイルされません。(一応、デコンパイラで確認してみました)
大好きなあの子の名前をテストクラス名にしちゃった人とか、重宝するんじゃないでしょうかー。
これって、Flex-er の方にとっては常識なんですかね。
CS4erの自分は、初めてしって、ちょっとびっくり。
でも、true, false の切り替えが若干面倒ではあります。
Flash のメニューバーからの階層もかなり深いですし。
んー、一長一短。
ウ○コしたかったら、したらいいじゃない、って事ですかー。
コメント:0
トラックバック:0
- この記事のトラックバック URL
- http://djakarta-trap.net/blog/2009/12/conditional_compile01/trackback/
- トラックバックの送信元リスト
- [CS4]条件つきコンパイルのメモ。 - djakarta-trap より
