各スライド/ページがムービークリップであり、スライド アニメーションを介して遷移するスライドショー スタイルのプレゼンテーションを作成しようとしています。私が抱えている問題は、ラグの問題を防ぐためにすべてのムービークリップを一度にステージに上げたくないということです。これは、私が達成しようとしているものの例です。
- 現在のページはページ A、次へボタンをクリック
- ページ B は、addChild を使用してステージに配置されます (ただし、ビューの外に配置されます)。
- ページ A が目に見えるステージから滑り落ちる
- ページ B が目に見えるステージにスライド
- ページ A は、removeChild を使用してステージから削除されます - これは私が問題を抱えている場所です。
//greensock stuff
import com.greensock.*;
import com.greensock.easing.*;
//buttons that navigate to next and previous slides
prevBtn.addEventListener(MouseEvent.CLICK,prevClicked,false,0,true);
nextBtn.addEventListener(MouseEvent.CLICK,nextClicked,false,0,true);
//setting up array of all the pages
var pageArray:Array = [page1, page2, page3, page4, page5];
var currentArray:Number = 0;
//defining the first page and placing it on the stage
var currentPage:MovieClip = new pageArray[currentArray];
addChild(currentPage);
function nextClicked(event:MouseEvent):void{
//check to ensure it is not the last page
if (currentArray < pageArray.length - 1){
//define the current slide as oldPage
var oldPage:MovieClip = new pageArray[currentArray];
currentArray++;
//define the next slide as currentPage and place on stage
var currentPage:MovieClip = new pageArray[currentArray];
addChild(currentPage);
currentPage.x = 1024;
TweenMax.to(currentPage, 1, {x:0});
TweenMax.to(oldPage, 1, {x:-1024,onComplete:removeChild,onCompleteParams:[oldPage]});
}
}
function prevClicked(event:MouseEvent):void{
//check to ensure it is not the first page
if (currentArray > 0){
//define the current slide as oldPage
var oldPage:MovieClip = new pageArray[currentArray];
currentArray--;
//define the next slide as currentPage and place on stage
var currentPage:MovieClip = new pageArray[currentArray];
addChild(currentPage);
currentPage.x = -1024;
TweenMax.to(currentPage, 1, {x:0});
TweenMax.to(oldPage, 1, {x:1024,onComplete:removeChild,onCompleteParams:[oldPage]}); }
}