Powered by Movable Type 3.16Syndicate this site(XML)
< Progression | | Import and Linkage >
2008.12.04

[SCRIPTProgression : Note1

Index クラスはデフォルト状態で CastDocument クラスを継承しています。CastDocument クラスは、ドキュメントクラスとして必要となる様々な機能が追加された MovieClip クラスのサブクラスです。

---

HTML サイトでページを順々と巡っていくのと同じように、Progression™ ではシーンを巡回しながらコンテンツを閲覧させることになります。シーンを扱うには、SceneObject クラスを使用します。

IndexSceneにFeatureSceneを追加(記述)したとすると、構造的にはIndexSceneの下の階層にFeatureSceneを置いたことになる。従ってパスは/IndexScene/FeatureSceneとなる。

---

SceneEvent.INIT イベント
移動先として指定したシーンに到着した瞬間に発生

SceneEvent.GOTO イベント
現在のシーンから移動する瞬間に発生

SceneEvent.LOAD イベント
目的地のシーンが自身もしくは子シーンを示している場合、移動処理時に階層が変更された瞬間に発生

SceneEvent.UNLOAD イベント
目的地のシーンが親シーンを示している場合、移動処理時に階層が変更された瞬間に発生

---

オーバーライド (override)とは、スーパークラスで定義されたメソッドをサブクラスで定義しなおし、動作を上書きすることである。

---

コンストラクタで指定している CastButton クラスの sceneId プロパティが、ボタンがクリックされた際の移動先シーンとなります。この設定は特に必要がない限りはコンストラクタで行うようにしてください。

---

IndexクラスとIndexSceneクラスの違いは、Indexが全てを統括しているのに対して、IndexSceneはTOPページのみを管理している、ということか?

---

コマンドを設定する際通常のフォーマットとの最大の違いは
* 1 つの処理につき、インスタンスを 1 つ作成する。
* どのようなコマンドの場合にも、実行時には必ず execute() メソッドを使用する。
この 2 点になります。

イベント中に処理させるためには、SceneObject インスタンスの addCommand() メソッドにコマンドを登録。addCommand() 経由で登録されたコマンドは、イベントの流れに応じて自動的に実行されるので、execute() メソッドを実行する必要はありません。

---

addCommand() メソッドで登録したコマンドはイベント発生が完了した後にまとめて処理されるために、イベント内で通常の手続き通りに実行されている removeChild() メソッドの方が先に処理されてしまっていることが原因です。この問題を解決するためには removeChild() メソッド自体を、コマンド処理として設定してあげる必要があります。

このようにコマンドを , で区切って続けて登録することで、前のコマンド処理の終了を待った連続実行が可能になります。

---

大量のアニメーションを設定しようとすると、シーンイベントがコマンドだらけになってしまいます。設定したいアニメーションが表示オブジェクトに紐付いたモノであれば、その表示オブジェクト自体に設定してしまう方が設計としてもよりシンプルです。

表示オブジェクト自体にイベントフローと連動させたコマンド処理が設定できるようになるキャストオブジェクトについてご説明します。

CastEvent.CAST_ADDED イベント
キャストオブジェクトが AddChild コマンド、AddChildAt コマンド、AddChildAtAbove コマンド経由でディスプレイリストに追加された瞬間に発生

CastEvent.CAST_REMOVED イベント
キャストオブジェクトが RemoveChild コマンド、RemoveAllChildren コマンド経由でディスプレイリストから削除された瞬間に発生

Posted by inami at December 4, 2008 02:22 PM
CopyRight© ´MNGN.COM´. All Rights Reserved.