問答収集 カテゴリ:Flashプログラミング
現在のスレッド一覧 / 新規に質問を投稿
レス数:1 / 状態:未解決 / No:105 / ATOM
1 名前:  日付:2012/12/26(水)13:16:59 ID:QNAatrL1/gFL
Flashの仕組みがいまいちわかっていない初心者ですが教えて頂けますか?

Flashでボタンを押すと音が鳴るという単純なスマホアプリを作っているのですが、
一番最初にボタンを押してから音が鳴るまでに若干読み込みが入っているのか、間があきます。
2回目以降はこういった症状が無くすぐに音が鳴るので、アプリを起動して最初の一回目だけに起こります。

これはつまり、ボタンを押して初めて音データを読み込んでいる・・・ということなんでしょうか?
Flashは最初に全データを読み込んでから始まるものだと思っていました。
それで、最初にボタンを押すときにはすでに音データの準備ができていて、ラグが発生しないと思っていました。

もしかしたら、最初にデータを読み込んでいるけど、ある程度先読み込んだ時点でアプリが開始され、音データの読み込みが完了する前にボタンを押すとそうなるのかもしれないと思い、次のような処理を最初にいれました。

if(info.bytesLoaded <= info.bytesTotal){
gotoAndPlay("ロード中");
}

読み込んだデータ量とデータ総量を比較して、読み込みが完了してなければロード中と表示されるフレームに戻る処理をループさせました。
1フレーム目に必要な関数や変数等を定義しておき、2フレーム目~5フレーム目でロード中と言う文字をアニメーションさせていて、2フレーム目から5フレーム目をループさせています。

ところで、このアプリ自体の総データ量が500KBと小さいものであるため、読み込みがすぐに完了して、ループをするほどでもないようです。
にもかかわらず、やはり最初の1回目は音が鳴るまでに若干の時間がかかります。
この症状を治す良い方法はないでしょうか?

なお、FlashCSを使っていて、音を鳴らすときにフレームのプロパティからサウンドを指定して、再生方法はイベントとしています。
AS3で直接プログラムを書き込んでサウンドを鳴らすと言う方法もあるらしいのですが初心者でよくわかりませんでした。

また、ロード中の文字が表示されるまでにもアプリを起動するのに5秒程度の真っ暗な画面の時間があります。
(これは、2度目や3度目のアプリ起動時には若干短くなったりしている気もします。)
もしかして、ロードとループするフレームに行く前に全データを読み込んでいるからロードのループが一瞬で終わったりしてるのでしょうか・・・
出来ればこの真っ暗な画面が嫌で、ロードと表示される画面を作ってそこで読み込んで欲しいのですが。

それとも、何秒も読み込む程のデータ量でもないので、これはFlash Air(?)で作ったゲームなら必ず起こるような待機時間なんでしょうか。


プログラミングというよりFlashの基本的な仕組みの質問で申し訳ないのですが、どなたかお答えいただけないでしょうか?
このスレッドについて
質問の状態 :
未解決
投稿開始日 :
2012/12/26(水)13:16:59
投稿終了日 :
2013/01/02(水)13:17:02
投稿者 :
 
レス総数 :
1
スレッド番号 :
105
MondoCollectionSystem ver.0x00020000 by Hakuhin