個別に対応していたDanOniソースの改造メモを公開するテストその2。
とりあえず残っているものからあるだけ出します。
今回は「音楽をRESULT以降も流し続ける」方法。
使用例はこまみーさんよりCALLING!で使われています。
使用可能バージョン:ver fd 3.0.0以上
そもそも、なぜ音楽はRESULT画面に行ったときに止まるのか?
その答えは、音楽を格納しているスプライト「musicAct」にあります。
これが消されてしまうと、中にある曲データも当然削除されます。
曲が終了したとき、ライフが0になったとき、リトライを掛けたとき。
これらの場合に、画面上に存在するスプライトを消す次のスクリプトが入っています。
_root.removeMovieClip(); (delAll関数内)
「musicAct」も例外ではなく、上記により削除されます。
また、[Clear][Failed]ラベルの次にある[アクション 消去 対象:ALL]でも消されてしまいます。
これを回避するには、深度の設定をParaFlaではなくスクリプト(AS)側で処理してやります。
musicAct.swapDepths(100000);
こうすると、_root.removeMovieClip();や[アクション 消去 対象:ALL]でも
「musicAct」が消えることはなくなります。
つまり、RESULT画面に飛んだときでも曲は流れ続けることになります。
◆注意
この方法は、musicActスプライトを画面の前面に表示します。
このため、このスプライトに画像などが入っているとRESULT画面に画像類が表示されたままになります。
この場合、画像類はmusicActスプライトと分けるといった工夫が必要です。
◆音楽スプライトの消し方
曲を流し続けることはできても、どこかで止めないといけません。
この場合は、次のように曲のスプライトを指定して removeMovieClip します。
_root.musicAct.removeMovieClip();
これを消したい場所に入れておけば、曲が止まります。
入れる場所としては、RESULT画面のBACK/RETRYボタンはもちろん、
曲中リトライ、途中終了、タイトルバックのところも必要になると思います。
最近のコメント