- 2008年5月25日 18:25
- flash
先週に引き続き WCAN の報告をします。今日はコンポーネントベースでの制作について書きたいと思います(Workshop 同様 Progression Framework version 2.0.21 を使用)。実際にコンポーネントベースで制作された mathatelle さん曰く、「小規模の案件であれば、コンポーネントベースで十分」らしいので、超短期の制作で需要がありそうです。
コンポーネントベースで作成
まず、Progression Framework のプロジェクト作成パネルから新しいプロジェクトを作成。プロジェクト名・縦横それぞれの最小サイズ・100%表示・中央配置を設定。コンポーネントベースなので、種類は Easy Casting を指定。プロジェクト作成についての詳細は下記ページを参照。

コンポーネントベースの作成方法については、本家のチュートリアルに沿った形で解説されていたので、下記ページを参考にしてもらえば一通りは理解できるはず。ただ、Workshop ではココに載っていないコンポーネントの使用方法や Progression Framework の仕様についても話されていたので、その部分について書いてみる。
XMLによるシーンとキャストの定義
Progression Framework では、プロジェクトパネルにある index.xml を編集することで各シーンとそれぞれのシーンで配置するキャストを定義している。例えば、ルートとなる index シーンとその下層に page1 と page2 を、各シーンで表示するキャストを定義した場合、以下のようになる。
※XML の書式・タグについては本家の PRML リファレンスを参照。
<?xml version="1.0" encoding="UTF-8" ?>
<prml version="2.0.0" type="text/prml">
<scene name="index">
<cast cls="IndexPage"/>
<scene name="page1">
<cast cls="page1Page"/>
</scene>
<scene name="page2">
<cast cls="page2Page"/>
</scene>
</scene>
</prml>
PRML リファレンスにも書いてある通り、cast タグに属性として x, y, index を指定できる。
<cast cls="castClassPath" index="0" x="100" y="100" />
更に、他のプロパティに関しても属性として指定できる。つまり、MovieClip のプロパティなら、alpha や scaleX など何でも指定できるようだ。
<cast cls="castClassPath" index="0" x="100" y="100" alpha="0.5" />
リファレンスにもそう書いてある。よく読んでいなかった自分が悪いんだけど、これは知らなかった。
PRML リファレンス画面に表示したいキャストの指定に使用するタグです。 <scene> タグの子要素として設定することで、その親シーンに移動された際に自動的に表示するようになります。
また、定義済みの属性以外の属性を設定した場合、対象に対応するプロパティが宣言されていれば、自動的にプロパティが設定されます。
XML で定義する利点
この XML は、swf ロード時に毎回参照しているため、パブリッシュ後もXMLから各プロパティを調整できるらしい。配置やアルファを少し調整したいときに役立つかもしれない。
XML のパス設定
最初からステージに設置してある、EasyCastingLoader コンポーネント。
![]()
EasyCastingLoader コンポーネントのパラメータの URL を変更することで XML のパスを自由に設定できる。

パブリッシュ時のコンポーネントはいったいどこに?
コンポーネントは、パブリッシュ時に原点に移動し visible = false になる。そのため、表示領域外に設置する必要はなく、好きな場所に配置しても良い。コンポーネントベースではコンポーネントをガシガシ設置していくので、パブリッシュ時のコンポーネントの所在が気になってましたが、これでスッキリしました。
その他コンポーネントについて
- Progression Preset の RollOverButton, InOutButton などのコンポーネント設置し、各シーンへ遷移するためのボタンを作成した場合、対応するカレントシーンでは反応しない。
- FadeMovie コンポーネントを設置すると、画面遷移時に Fade エフェクトがかかるようになる(niumさん曰く「ふわっと出る」)。FadeMovie コンポーネントはあまり知られていないらしい。
- 現状、同じシンボル内に InOutMovie と FadeMovie は一つだけ設置できる。
WCAN 開催日からだんだん時間が経ってきてますが、次はクラスベースについて書きたいと思います。