文字

[ミニクイズゲー進捗5]Javascriptで動画再生中は他の処理を待たせる[未解決]
公開:2020.06.09 更新:2020.06.09

こんちはです。

久しぶりでもないですが、クイズゲーム進捗です!

間が空いて無いってことはそこそこ順調に進んでるってことですね((笑))

今回は下記のようなことやってました。

  • レスポンシブ化
  • 勝ち抜きモードでの敗北時リザルト作成

詳しくは飛ばしますが、唯一、動画の再生中に他の処理を待たせる処理がまだ分かっていないので、とりあえずやったことと解決(応急処置)の内容について発表もといメモしておきます。

やった処理

経過を説明すると、ゲームオーバー画面に流す動画を作ったは良いものの、現処理だと動画を流すと同時に評価画面が入ってしまい、ちょっと処理待たせたいなって感じです。

説明下手ですんません。

for&if文

まず、for文とif文の組み合わせでやろうとしました。

for(let i=false;i===true;){
   if($("「#HTML5動画(videoタグ)のid」")[0].paused){ //動画が停止状態なら
       i=true;
   }
}

これですね、動画が停止状態か調べる文については事前に調べていたのでやりました。やってしまいました。

結果:フリーズしました。

while文

次にwhile文試しました。

こっちの方がシンプルな動きっぽいし期待したい!!

while($("「#HTML5動画(videoタグ)のid」")[0].paused){ //動画が停止状態なら
    
}
次の処理;

結果:フリージング~

応急処置

もう駄目だこれ…..ということで大人しくタイマーを使うことにしました。

Javascriptにはdelay(1000)とか無いみたいなので、setTimeout()を使います。

文法はこちら↓

var timeID = setTimeout(function(){
              xx後にしたい処理;
            },xx);

機能としては、読み込んだ○○秒後に処理を実行します。

xxは秒数ではなく、delayとおなじくカウントなので、「例:xx=1000」とすると約1秒後に処理が実行されます。

自分の場合は、

var timeID = setTimeout(function(){
              hyoukafase();//7000後にしたい処理
            },7000);

と書いてます。

おすすめ商品

巻末にHTML講座あったりするコミックだよ

言わずと知れる原作読めムーブ

コメント

内容をご確認の上、送信してください。