SWC ライブラリを作成する

(サンプル一覧を表示する)

Flash でライブラリを使用する時は、 SWC という形式のものを使います。
拡張子は .swc で、単純に zip ファイルの拡張子を変えたものです。
ライブラリファイルの中には、内容を表す XML ファイルと、コンパイル時に参照する SWF ファイル、埋め込んだ画像等のリソースが含まれています。

SWC ファイルは、C 言語でいうところの静的リンクライブラリのように使用します。
ビルド時に参照するので、 Web サーバ配置時に SWC ファイルを含める必要はありません。

今のところ FlashDevelop では簡単に SWC ファイルを作成する機能が無いようなので、 手動で Flex SDK の SWC 作成コマンド (compc) を呼び出す必要があります。

SWC 作成の手順は、

  • ソースを書く
  • SWC に含めるクラスを XML ファイルに書く
  • compc コマンドを呼び出す
というような感じになります。
compc 呼び出し部分は .bat ファイルに書いておくとダブルクリックで呼び出せるようになるので便利に使えると思います。

SWC 作成時に使用する XML ファイルのサンプル

<?xml version="1.0" encoding="utf-8"?>

<!-- SWC ファイルは、実は普通の zip ファイルだったりするので、 -->
<!-- 拡張子を zip に変更すると解凍して中身を見ることができます。 -->
<!-- 入れたいファイルが中に含まれているか確認してみてください。 -->
<flex-config>

	<!-- Vector.<*> クラスを使用した場合等、FlashPlayer のバージョンを -->
	<!-- 指定しないといけない場合はここをコメントアウトしてください。 -->
	<!--<target-player>10.0.0</target-player>-->
	
	<!-- ↓ コンパイラの設定 -->
	<compiler>
		<!-- ↓ 最適化有効。最適化を使用しない場合はコメントアウトしてください。 -->
		<optimize>true</optimize>
		<source-path>
			<!-- ↓ ソースのルートディレクトリを指定します。 -->
			<path-element>src</path-element>
		</source-path>
	</compiler>

	<!-- ↓ 出力するファイルの名前 -->
	<output>LibWanko_0.1.swc</output>


	<!-- ↓フォントファイル等を SWC ファイル内に含めたい場合はここで指定します。 -->
	<!--
	<include-file>
		<name>assets/test.ttf</name>
		<path>./assets/test.ttf</path>
	</include-file>
	-->

	<!-- ↓ライブラリに含めたいクラスをここで列挙します。.as 拡張子を書いてはいけません。 -->
	<!--   Main はテスト用のクラスとして使用しているので含めていません。 -->
	<include-classes>
		<class>org.is_a_geek.hikipuro.WankoBitmap</class>
		<class>org.is_a_geek.hikipuro.WankoDebug</class>
	</include-classes>

</flex-config>
		

SWC 作成時に使用する .bat ファイルのサンプル

@rem ↓の、Flex SDK へのパスをお使いの環境に合うように変更してください。
@PATH=%PATH%;C:\flex_sdk_3.3.0.4852\bin
@cd
compc -load-config+=LibWanko.xml
@pause		

SWC 内のコードのコメント機能が効かない場合の対処法

SWC 内のコードは、コメント機能が効かないようになっています。

コメント機能の図 コメント機能の図
(コメント機能が効いている時) (コメント機能が効いていない時)


効いていない時は、メソッド呼び出し時の引数リストのコメント等がポップアップ画面に表示されないようになります。
これではコード入力時に不便なので、有効にする方法を書いていきます。
この方法は自作ライブラリ等、ソースコードが SWC とは別に用意できる場合にのみ使用できます。



1. まず、 FlashDevelop の "Project" の画面から、現在編集中のプロジェクト名を右クリックして、 "Properties" を選択します。

図01


2. "Classpaths" タブで、 "Add Classpath..." をクリックします。

図02


3. ライブラリのソースコードを含んだフォルダを指定します (ここでは LibWanko を選択しています)。

図03


4. 追加したパスが表示されていることを確認して OK をクリックします。

図04


5. "Project" の画面に、追加したフォルダの名前が表示されたら完了です。これで SWC 内のコードのコメント機能が効くようになります。

図05


asdoc の日本語化について

サンプルの zip ファイルの中に asdoc コマンドを実行する .bat ファイルも入れてありますが、 そのまま実行してもテンプレートが英語なので、"クラス" が "Class" となっていたり、 外枠の部分が全部英語表記になってしまいます。

日本語で表示したい!という人のために、完全ではありませんが、 ある程度日本語化したテンプレートを置いておきます。 Flex SDK 内のテンプレートを上書きするとうまく動かなくなるかもしれないので、 どこか他のところに解凍してください。
テンプレート変更時は、 asdoc コマンドに渡す templates-path パラメータに解凍したテンプレートのパスを指定してください (注:パス名に日本語文字列が入るとうまく動きません)。 このテンプレートは、ソースコードへのリンク表示も追加しています。
無効にする時は "class-parts.xsl" の、 206 から 217 行目をコメントアウトしてください。