日本語:ページ

イントロダクション
Gaiaで使われるページとは、スケルトン作成(scaffolding)処理の間と、 または、自分で作成したFlashファイルによって作られた、テンプレート化されたFlashファイルによって、"物理的に"あらわされます. ページは、他のページと同様、Assetsを含みます. それらは、ページノード中のsite.xmlで表されます.

コアとして、ページは、単に機能的に遷移を管理するMovieClipAssets (Assetsを参照) とアセット、親、そして子と関係するビルトインです.



ページ遷移
Gaiaにおけるページは、出たり入ったりする遷移のためにセットアップされます. 遷移は、タイムラインベース、コードベースまたは、そのいかなる組み合わせとなります. それは、完全にGaiaを使用するあなた自身によります.

Gaiaでは、ページ用に、４つの必須メソッドがあります. そして、それらのメソッドは、標準のタイムラインベースの命名規則に準じます.


 * transitionIn;
 * transitionOut;
 * transitionInComplete;
 * transitionOutComplete;

ページは、Gaiaからこれらのイベントを受け取り、ページファイルは、定義されたこれらのメソッドを全てを持たなければいけません. "完全な"メソッドを最後の遷移で、必ず呼ばないといけません. それにより、Gaiaは、ページが出入りする遷移を終えたがどうかを知ります. Gaiaは、自動的にこれらの定義されたメソッドを持ちます.

使用する遷移がタイムラインベースの場合、ページのルートタイムライン上のこれらのメソッドを呼ぶことができます. また、コードベースの場合、ページのタイムラインか、 そのタイムライン(AS2/AS3)と属するページドキュメントクラスを目標にする必要があるだけです.

例えば、遷移用に何かTweenLiteようなものを使用する場合、 GaiaをTweenLiteへ渡すオブジェクトのonCompleteパラメータのような完全なメソッドをセットできます.

Gaiaのアクションスクリプト遷移テンプレートは、このコードを使います.

AS3 override public function transitionOut:void {     TweenLite.to(this, .3, {alpha:0, onComplete:transitionOutComplete}); }

AS2 public function transitionOut:Void {     TweenLite.to(this, .3, {_alpha:0, onComplete:Delegate.create(this, transitionOutComplete)}); }

一般に、それらをコールする代わりに、完全メソッドをオーバーライドしないことが推奨されています. AS3では、問題なく完全メソッドをオーバーライドできますが、 AS2で、タイムライン遷移スタイルテンプレートを使って完全メソッドをオーバーライドする場合、Flashのバグがあります.



ページプロパティ
ページのルートタイムライン上にセットされるプロパティが３つあります. swfs: アセット、ページ、コピー (assets, page and copy)

'''注意: これら３つのプロパティは、transitionInが呼ばれるまで有効ではありません. '''

アセット
assets:Object もし、site.xmlの中で、ページがアセットを持つ場合、それらは、それらのIDによりこのオブジェクトの中でストアされます. 詳細なアセットのアクセス方法に関しては、ドキュメントのAssetsセクションにあります.

ページ
page:PageAsset このページのPageAssetクラスへの参照は、このプロパティで利用できます. これは、ページの親子、ブランチ、または、他のプロパティといった、 Gaiaがページを定義するために使用するプロパティに直接アクセスできるようにします.

AS2 と AS3

var myBranch:String = page.branch; var myParentSrc:String = page.getParent.src;

パブリックページプロパティの詳細は、ドキュメントのSite XMLセクションにあります.

コピー
copy:Object

もし、SEOがsite.xmlでOnのページの場合、XHTMLページは、このページ用に作成されます. pタグ値は、コピーオブジェクト内で有効になります. 詳細は、ドキュメントのSEOをご覧ください.

var TXT_Header:TextField; TXT_Header.text = copy.someValue; trace(copy.anotherValue);

onDeeplink
SWFAddressと機能的に動作するディープリンク用の任意のページメソッドがあります. onDeeplink(event:GaiaSWFAddressEvent)

ディープリンクイベントがSWFAddressから発生した時、ディープリンクはこのメソッドを経由してswfページに渡されます. イベントは、ディープリンクのプロパティを持ちます. Gaiaは、これを処理します. なので、ディープリンクイベントに対するリスナーの様に、手動でページを追加削除する必要がありません. ディープリンクイベントに関する詳細は、ドキュメントのEvents and Hijackingセクションをご覧ください.

GaiaSWFAddressEventは、２つのプロパティを持ちます. ディープリンクとブランチです. ディープリンクプロパティは、有効なブランチの範囲を超えた値です. ブランチプロパティは、ディープリンク値の一部分である有効なブランチです.

You override this method in your page class like this:

AS3 override public function onDeeplink(event:GaiaSWFAddressEvent):void {   // handle the event.deeplink }

AS2 public function onDeeplink(event:GaiaSWFAddressEvent):Void {   // handle the event.deeplink }

If you have clips or classes inside your pages that need to respond to this event, you can simply have them listen to the page for the GaiaSWFAddressEvent.DEEPLINK event. You'll need to call super.onDeeplink(event) in your override if you want this functionality. Otherwise, you don't need to call the super method if you don't want to.



テクニカル情報
Gaia内で、ページはMovieClipAssetから継承した、 PageAssetクラスのインスタンスです.

swfページは、動的に作られたMovieClipの中にロードされ、 そのページのPageAssetインスタンスに渡されたそのMovieClipへの参照です. PageAssetクラスへの参照は、 そのMovieClipのドキュメントクラスにセットされた自身の"assets"プロパティです. MovieClipのドキュメントクラスは、スケルトン作成時(scaffolding)に作られ、 AbstractBaseを拡張するAbstractPageを拡張します.

３つのプロパティ(アセット、ページ、コピー)は、onDeeplinkイベントリスナーと同様、 ページから継承されたAbstractPageと[Templates Package#AbstractBase|AbstractBase]]クラスにあります. これらのクラスは、両方とも、com.gaiaframework.templatesパッケージにあります.

AS3 ページ
AS3ページは、ドキュメントクラスを使用します. また、上記のコードは必須ではありません. もし、タイムラインテンプレートを使用している場合、最初のフレームがstop;の上にある単一メソッド以外は、上記と似ています. もし、Actionscriptテンプレートを使用している場合、タイムライン上にコードはありません.

スケルトン作成時(scaffolding)は、ページクラスのコンストラクタ内で単一の行だけになります. new Scaffold(this);

AS2 ページ
もし、タイムラインテンプレートを使用している場合、 スケルトン作成された各ページのタイムライン上には、AS (Actionscript)レイヤー、ラベルレイヤーとコンテントレイヤーがあります. また、２つのフレームラベル("in"と"out")もあります.

もし、Actionscriptテンプレートを使用している場合、単にフレームが一つあるだけです.

ASレイヤーの最初のフレーム内に、以下のコードがあります. import Package.Page; Page.initDocumentClass(this); stop; scaffold;

パッケージとページは、クラスパッケージとページIDの後に、命名されます. ページクラス内のinitDocumentClass(this)メソッドは、AS3 ドキュメントクラスを機能的にシミュレートします.

あなたが作業を行う準備が整った時、"scaffold;"の行と、ページクラスからscaffold関数を削除することができます.

ページクラス
AS2とAS3用のページクラスは、AbstractBaseを拡張するAbstractPageを拡張します. そして、IPageとIBaseインターフェースをそれぞれインプリメントします. 抽象ページは、onDeeplink関数と同様、アセットとページプロパティを含みます.

抽象ページは、４つの必須遷移メソッドを含みます.

gotoAndPlayメソッドをデフォルトで持つtransitionInとtransitionOutメソッドをオーバーライドするか、 それらがディスパッチしたイベントをリッスンすることを選択できます.

transitionInCompleteとtransitionOutCompleteメソッドは、修正するべきではありません. もし、カスタム目的でそれらをオーバーライドする場合、AbstractBaseでスーパークラスメソッドを呼ぶことを確認してください.



ページからスケルトン(Scaffolding)を削除


一度、あなたのサイトでスケルトンが作られたら、単にスケルトンを削除することです.

AS3の場合、ページクラスのコンストラクタ内のこの行を削除します. new Scaffold(this);

AS2の場合、ページテンプレートファイルの最初のフレーム上のこの行を削除します. scaffold;

また、AS2ページクラス内のscaffoldメソッドを自由に削除してください.

一度、全ページからコードの行削除が完了した後、デプロイフォルダからscaffold.swfとページ内にスケルトンが作られたパッケージからScaffold.asクラスを削除します. これは、必須ではないですが、一度、ページからスケルトンコードを削除したら、これらのファイルはこれ以上使われません. あなた自身で削除することもできます.

良ければ、AS2とAS3の両方で呼ぶ、super.transitionInとsuper.transitionOutを削除することもできます.

preload.flaファイルは、PreloaderScaffoldから呼ばれるライブラリ内で、クリップを持ちます. それは、ページ内にスケルトンが作られたパッケージ内で、PreloaderScaffold.asが割り当てられます.

良ければ、一度あなた自身のプリローダを書いたら、ライブラリとその関連するクラスからクリップを削除することができます.

多くの人は、PreloaderScaffoldを開始点として使用しますが、これをしても構いません.

'''*** スケルトンコードを削除した後に、ページファイルを再び発行することを確認してください. ***'''