perl で swc ファイルを作るスクリプトを書いた

By admin | 2008年12月13日

前回までの流れ

過去記事
perlをワンライナーで便利な使い方(compcを使う時に便利)
compc で swc ファイルを作る際に外部ライブラリ(swc)と共にビルドする方法

前回までの記事にもあるように地味にこれの行為は毎回するのめんどくさいんです。
わざわざコピペしたりファイル追加されたらめんどくさいこと、この上なし。
SDK でせずに Flex Builder 使えばいいじゃんと思うが。。。
それは全くその通りですw
あと、もーすぐ ASDebuger ってのを公開する予定。みなさんよろしくですw

スクリプト

compc.pl

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/bin/perl
# Author: dealforest
# Last Update: 2008-12-13
# Version: 0.01
use strict;
use warnings;
use File::Find::Rule;
 
my $project = "ASDebuger";
my $lib_dir = "lib"; # 外部 swc を利用する場合は ./lib 以下にいれておけばおk
my $output_dir = "."; # 生成した swc をおくところ
my $package_dir = "net/dealforest"; #swc にする as ファイルのある場所
my $swc_name = "$project.swc"; # swc  のファイル名
 
$swc_name = "$project-$ARGV[0].swc" if $ARGV[0];
 
my $files = join ' ',
    map { s{\.as$}{}; s{/}{\.}g; $_ }
    File::Find::Rule->file
                    ->name('*.as')
                    ->in($package_dir);
 
`compc -output $output_dir/$swc_name -source-path . -compiler.library-path $lib_dir --include-classes $files`;

ディレクトリ構成

[dealforest@mac] tree
.
|-- compc.pl
|-- lib
|   |-- asreflect-1.00-rc1.swc
|-- net
    `-- dealforest   (<- $package_dir)
       `-- ASDebuger
           |-- Constant.as
           |-- DebugerManager.as
           |-- Logger.as
           |-- PluginManager.as
           |-- debugers
           |   |-- DebugerBase.as
           |   |-- FirebugDebuger.as
           |   |-- IDebuger.as
           |   |-- SimpleLogger.as
           |   `-- TraceDebuger.as
           |-- plugin
               |-- Dumper.as
               |-- FlashPlayer.as
               |-- IPlugin.as
               |-- MemorySnapShot.as
               `-- PluginBase.as

簡単な説明

これ完璧に自分の環境用なので、動かなくても保証しませんw
一応, File::Find::Rule を使ってるので OS 間の差異はないはず。

File::Find::Rule->file
                ->name('*.as')
                ->in($package_dir);
# net/dealforest/ASDebuger/Constant.as ....

ここで net/dealforest 以下のファイルをとってきてます。
このままだと actionscirpt の名前空間と違うので変換します。
/ -> .
.as -> 削除
これを空白で文字連結をして --include-classes に渡しています。
内容自体はたいしたことしてません。

Find::File::Rule に関してはここがわかりやすいと思います。(CPAN)

おまけ

perl compc.pl         #ASDebuger.swc ができる
perl compc.pl 0.01 #ASDebuger-0.01.swc ができる

AIR で Actionscript3 の Livedoc (reference) があった

By admin |

タイトルのまんま。
通常、重い adobe のサイトでみないといけないのがローカルで
それも AIR でみることができます。
相当便利です。

と、おもわせといて、、、
検索できないのが痛い。それさえできれば相当便利なのにな〜

AS3LD
DL はここから。AIR App: AS3 Language Reference
(※AIR のインストールは必要です。)

WordPress Themes