スライド間を移動する
サンプルムービーのボタン( next_btn と prev_btn )はユーザがあるスライドから次もしくは前のスライドに移っていけるようにします。ユーザがスライドショーの終点に到達したら、ボタンにアクションはありません。
各ナビゲーションボタンは、それぞれに関連づけられたActionScriptを持っており、以下のような動作をします:
- 次もしくは前のスライドのノードが存在するかどうかを確認します。
- 次/前のスライドのノードが存在したら、
updateSlideを呼び出して新しいスライドのノードをパラメータとして渡します。 currentIndex変数を更新して現在のスライドのインデックスに入れ替え、 currentSlideNode 変数を更新して現在のスライドのノードへの参照に設定します。次もしくは前のスライドが存在しなければ、何もしません。
各ボタンのアクションはボタンイベントハンドラに含まれています。イベントハンドラはボタンやムービークリップ、その他のオブジェクト用のイベントを扱うための、Macromedia Flash MXからの新しい方式です。より詳しくは、「アクションスクリプトのイベントメソッドを使う」を参照してください。
以下は、"next slide" (右矢印) ボタンのためのイベントハンドラです。XML オブジェクトである nextSibling プロパティを使用します。これは特定のノードの次のsiblingノードへの参照を(存在すれば)返します。存在しない場合は、null 値を返します。
next_btn.onRelease = function() {
nextSlideNode = currentSlideNode.nextSibling;
if (nextSlideNode == null) {
break;
} else {
currentIndex++;
updateSlide(nextSlideNode);
currentSlideNode = nextSlideNode;
}
};このハンドラはまず現在のスライドのノードの、次のsiblingノードへの参照を取得しようとします
nextSlideNode = currentSlideNode.nextSibling;
次のsiblingノードが存在しなければ -- つまり、 (nextSlideNode == null) の条件が true の評価だったら -- break 文でハンドラを抜けます。
そうでない場合は、 currentIndex 変数をインクリメントして currentSlideNode を nextSlideNode と同じ値に設定し、 updateSlide 関数を呼び、パラメータとして nextSlideNode を渡します。 updateSlide 関数についての情報は「現在のスライドを更新する」を参照してください。
"previous slide"ボタンのアクションはnext slideボタンの動きに準じますが、 XML.previousSibling を使用するところが違います。これは特定のノードの前のsiblingノードへの参照を(存在すれば)返します。
back_btn.onRelease = function() {
previousSlideNode = currentSlideNode.previousSibling;
if (previousSlideNode == null) {
break;
} else {
currentIndex--;
currentSlideNode = previousSlideNode;
updateSlide(previousSlideNode);
}
};翻訳: 株式会社バスキュール