カスタムクラスとクラスパス

2008.9追記:このエントリを書いた時点では「グローバルクラスパス推奨」みたいな書き方になっておりますが、今現在、Flash業界では「ドキュメントレベルのクラスパス推奨」な風潮になりました。よって、このエントリは参考程度に、読者のみなさんがこれから実際にクラスパスを通す習慣を身に付けたいというときは「ドキュメントレベルのクラスパス」を通すようにすることをおすすめします。やり方の詳細は「Web Designing 2008年9月号」に執筆させていただきました。

世の中には便利なクラスを作って下さる方がいます。
Robert Pennerさんのトゥイーン関連のクラスや、FlashでXPassを使えるxfactorstudioのXPass4AS2などは、汎用性ありまくりでマストな逸品です。
こういうカスタムクラス群を、しっかり管理しておく方法を、基本からまとめてみました。

ネットからダウンロードすると、クラスファイルが「com/作者のドメイン名/tween(任意)/~.asファイル」というディレクトリ構成になっていることがよくあります。asファイルをクラスファイル、そこまでのディレクトリ名をパッケージと呼びます。他の人が作ったパッケージと重複して上書きとかされるのを防ぐために、唯一の存在であるドメイン名で包むわけです。僕がtween関連のクラスを作ったら「com/trick7/tween/Twist.as」とかにするわけです。

以下、快適なカスタムクラス使用環境づくりのための作業手順です。

Windows :<ハードディスク>\Documents and Settings\<ユーザー>\customclasses
Macintosh : <ハードディスク>/Users/<ユーザー>/customclasses
というフォルダを作って、その中にcomフォルダごと移動します。

classpath1.jpg
複数個のパッケージを持っている場合、こんな感じになります。

このままここに置いているだけでは気軽に使えません。理想はダウンロードしたサンプルファイルのimport文のまま、

import com.xfactorstudio.xml.xpath.*;//XPathを使う時の例

のままで使いたいわけです。
そこでクラスパスの設定をします。

クラスパスには2種類あります。そのflaファイルの中だけで通用するドキュメントレベルのクラスパスと、全てのflaファイルで共有されるグローバルなクラスパスです。
Flashはimport指定を見つけると、まずドキュメントレベル、次にグローバルクラスパスの順にクラスを探し、それでも見つからない場合はエラーを返すそうです。(Flashヘルプに記載)
ドキュメントレベルのクラスパスは、そのflaファイルのパブリッシュ設定から、グローバルなクラスパスはメニューの環境設定から、「ActionScript2.0設定」をクリックでそれぞれ設定します。

今回は末永く使いまくりたい汎用なクラスなので、グローバルなクラスパスとして設定します。「メニュー」→「環境設定」→「ActionScript」→「ActionScript2.0設定」で下のようなウィンドウが開きます。デフォルトでは「.(flaと同階層の意)」と「$(UserConfig)/Classes」の2つです。

※参考
$(UserConfig)/Classesっていうのは、
Windows :<ハードディスク>\Documents and Settings\<ユーザー>\Local Settings\Application Data\Macromedia\Flash 8\<言語>\Configuration\Classes
Macintosh : <ハードディスク>/Users/<ユーザー>/Library/Application Support/Macromedia/Flash 8/<言語>/Configuration/Classes
を指すそうです。Flash 8フォルダにenとjaの2つのディレクトリがあって不思議だったのですが、jaだけを読み込んでいるんですね。知らなんだ。

なので、Configuration/Classesフォルダの中にcomパッケージを移してもいいのですが、Flash をアンインストールして再インストールした場合などに、ディレクトリが削除または上書きされてカスタムクラスが失われることがあるらしい&階層的に奥まった場所にあってややこしいので、<ユーザー>/customclassesを作ったわけです。職場との同期もしやすいですし。

classpath2.jpg
で、開いた「ActionScript2.0設定」パネルの「+」をクリックして、さらに真ん中のボタンをクリックしてcustomclassesまでのパスを通せば完成です。
以降は設定したFlash環境上で、無造作に「import com.〜.*」でインポートできるようになります。以後、有益なクラスパッケージを見つけても customclasses フォルダに入れるだけでOKです。

9/6追記:en/jaフォルダについて文章、フォルダのパスに誤表記があったので訂正。
ついでに、納品するときは、使用したカスタムクラスのパッケージを、comフォルダがflaファイルと同階層になるようにしてコピーして(「.」のグローバルパスを利用するのです)、納品しましょう。

このエントリーをはてなブックマークに追加
はてなブックマーク - カスタムクラスとクラスパス

Comments:0

Comment Form
Remember personal info

Trackbacks:1

Trackback URL for this entry
http://www.trick7.com/blog/2006/08/31-222857.php/trackback
Listed below are links to weblogs that reference
カスタムクラスとクラスパス from trick7
pingback from field-mount blog » ドキュメントクラスパス 10-02-25 (木) 13:16

[...] その当時(というか最近まで)グローバルクラスパスという方法でライブラリを読み込んでおりましたが、どうやら最近(というかだいぶ前(汗))からドキュメントクラスパスを設定して、プロジェクトごとに利用するライブラリやカスタムクラスなどをひとつのフォルダ以下にまとめようという方向らしい。(trick7さんより)師匠のいないおれは知らんかったぜい。 なんならWEB Designingの一昨年の8月号に記事を書いてると…。買ってなかったぜ…。amazonにて中古でポチっとしたよ… [...]

Return to page top