ActionScript 3.0を本格的に学習し直そうと思って左記の本を購入しました。
前半の基礎編を読んで、懇切丁寧なActionScript 3.0の解説と秀逸なサンプルが気に入りました。
しかしこの本、Amazon.co.jpでのレビューで指摘されているとおり、致命的な欠点があります。
編集の方が AS 2.0 と AS 3.0 に互換性がないことを知らなかったんでしょうか?ざっと目を通したところ、18個ある[Case Study]のうち主に前半部分の6個がActionScript2.0で作成されていました。
うーん・・・
まあ、いい機会なのでこのサンプルをActionScript 3.0で書き直してみましょう。
というわけで今回は[Case Study:01 読み込みの状況を表示するプログレスバー]を書き直しちゃいますよ。
以下、「ソフトバンク クリエイティブの本:Flashデザインラボ -プロに学ぶ、一生枯れない永久不滅テクニック」のページで配布されているサンプルをベースに修正します。
基本的な手順
- 新規 ActionScript 3.0 Flashファイルを作成する
- もとのサンプルファイルを開き、ライブラリから必要なものを新しいFlashファイルへコピーする
- 新しいファイルのステージ上にオブジェクトを配置して、もとのサンプルファイルと同様の状態にする
- パブリッシュ設定で、ステージのインスタンスを自動宣言しないようにする
- ライブラリ内の「~ローディングMC」に記述されたAS2.0のコードを削除する
- サンプルファイルと同じディレクトリにASクラスファイルを配置する
- ローディングMCにリンケージを設定する
以下のリンクから、今回作成したActionScript 3.0対応クラスファイルをダウンロードできます。
Zip形式で圧縮されていますので、Flashファイルと同じフォルダに解凍してください。
- LoadingCircle クラスファイル
- このクラスを「回転ローディングMC」にリンケージします。クラス名:LoadingCircle
- LoadingBar クラスファイル
- このクラスを「ストライプローディングMC」にリンケージします。クラス名:LoadingBar
以上!
って感じですが、これだけで理解できなかった方は以下の補足に目を通してください。
ステージのインスタンスを自動宣言しないようにする
ステージ上で配置されたMovieClipなど、名前つきのインスタンスをASコード内で明示的に宣言しなくても使用できるようにする機能です。
一見便利ですが、かえってソースコードの可読性を損ねるのでこの機能は無効にすることをお勧めします。
設定の仕方は下の画像で確認してください。

「MCにリンケージ」ってどういうこと?
大雑把に説明すると、「このムービークリップの挙動はこの外部ファイルに定義されています」ということをFlashに知らせるわけです。
ライブラリパネルで右クリックして「リンケージ」を選ぶと「リンケージプロパティ」の画面が表示されるので、そこで設定してください。

AS3.0の世界では常識だと思いますが、仕事でFlashを使っていても単純なムービーしか扱ったことがない人だと意外と知らない場合があります。
こんな感じでぼちぼち他のサンプルもAS3.0対応版に書き直していきたいと思いますのでよろしくお願いします。
とても素晴らしい取り組みですね。
同じ本を持っており同じことを感じていました。
2.0から3.0への変換とても勉強になりました。
ありがとうございました。
また、ちょくちょくチェックさせてください。
スギノヨシカズ(khuz)
コメントありがとうございます。励みになります。
他のCaseStudyも合わせて参考にしていただけたら幸いです。