actionscriptでレイヤーを表示/非表示することはできませんが、表示/非表示を切り替えることはできます。
それぞれのレイヤーはおそらく独自のMovieClipです(そうでない場合は、それぞれ独自のMovieClipを作成してみてください)。これらのそれぞれにインスタンス名(screen1、screen2など)を付けます。最初からタイムラインをキャッチするイベントハンドラを作成し、発生したときにコードを実行できるようにします。独自のフレームカウンタ変数を作成する必要があるかもしれません。このコードは、タイムラインの最初のフレーム(通常はそれ自身のレイヤー)に移動します。これは次のようなものです:
var frameCounter:int = -1; //start at -1 so the first screen gets shown first
var currentScreen:MovieClip = screen1; //or whatever the name of the first screen is
var screens:Array = [screen1, screen2, screen3, screen4, screen5]; //load your screens into an array so it's easier to cycle through them
//make sure all of the screens are hidden to begin with
for each(var screen:MovieClip in screens) {
screen.visible = false;
}
this.stage.addEventListener(Event.ENTER_FRAME, handleEnterFrame);
function handleEnterFrame(evt:Event):void {
frameCounter++;
if(frameCounter == this.totalFrames) {
frameCounter = 0; //just to be sure this value resets properly
}
if(frameCounter == 0) {
var indexOfCurrentScreen = screens.indexOf(currentScreen);
var indexOfNextScreen = indexOfCurrentScreen + 1;
if(indexOfNextScreen >= screens.length) {
indexOfNextScreen = 0; //to make sure we're not out of the array bounds
}
//hide the last screen, show the next one
currentScreen.visible = false;
currentScreen = screens[indexOfNextScreen] as MovieClip;
currentScreen.visible = true;
}
}
これで十分なスタートです。このコードは、メインタイムラインの最初のフレームの独自のキーフレームにある必要があります。通常は、そのキーフレームを独自のレイヤーにして、それを「アクション」と呼ぶのが最善です。
真実は、あなたのタイムラインにコードを持たず、代わりに.as(actionscript)ファイルを使用してコードを編成することをお勧めします。しかし、それは別の日の話題です。今のところ、このソリューションはおそらくうまくいくでしょう。
幸運を祈る!
出典
2011-12-05 14:34:29
Ian
いいえ、あなたはactionscriptでレイヤーを表示/非表示できません。 – Cyclonecode