TweenImageLoaderクラスの訂正記事だけだと申し訳ないので、TweenImageLoaderクラスと組み合わせて使うXMLSlideShowクラスにスライドショーの送り、戻し、ジャンプ、停止トグルの関数を追加したいと思います。XMLSlideShowクラスは、XMLファイルから写真リストを読み込んでスライドショーを行うクラスです。p.434に掲載されています。
次のスクリプトをXMLSlideShow.asに追加して、XMLSlideShowのインスタンスから呼んでください。この追加機能が正しく動作するように、先の
TweenImageLoaderクラスの訂正を必ず行ってください。
なお、この追加機能はp.430のSlideShowクラスでも利用できます。
//--------追加関数
//1つ進む
public function goNext():void {
timerObj.reset();
timerObj.start();
//currentNoのカウントアップ
currentNo = (currentNo>=photoXml.photo.length())?1:(currentNo+1);
loadImageNo(currentNo);
}
//1つ戻る
public function goPrev():void {
timerObj.reset();
timerObj.start();
//currentNoのカウントダウン
currentNo = (currentNo<=1)?photoXml.photo.length():(currentNo-1);
loadImageNo(currentNo);
}
//指定の番号へジャンプ
public function goNo(no:int):void {
timerObj.reset();
timerObj.start();
currentNo = Math.max(1, Math.min(photoXml.photo.length(), no));
loadImageNo(currentNo);
}
//停止と再生のトグル
public function togglePause():void {
if(timerObj.running){
timerObj.stop();
}else{
timerObj.start();
}
}
使用例は次のようになります。p.437の最初に書いてあるフレームアクションに加筆したスクリプトです。ステージにはnext_mc、prev_mcのムービークリップを作っておきます。
import XMLSlideShow_work;
var xmlUrl:String = "xml/photolist.xml";
var slideObj:XMLSlideShow = new XMLSlideShow(container_mc, xmlUrl);
container_mc.addEventListener(MouseEvent.CLICK, onClick);
next_mc.addEventListener(MouseEvent.CLICK, onNext);
prev_mc.addEventListener(MouseEvent.CLICK, onPrev);
function onClick(event:MouseEvent):void {
slideObj.togglePause();
}
function onNext(event:MouseEvent):void {
slideObj.goNext();
}
function onPrev(event:MouseEvent):void {
slideObj.goPrev();
}