2

eラーニングアプリケーション用に次のワークフローを作成する必要があります。

  1. プレーヤーを一時停止します
  2. プレーヤーを非表示にする
  3. 質問を表示する(チャレンジ)
  4. ユーザーの回答を得る

  5. 答えが本当なら

    1. 質問divを非表示
    2. プレーヤーに表示
    3. プレイを再開する
  6. 答えが間違っている場合は、ページをリロードして、最初からビデオを開始してください

ビデオの再生中は、手動シークを無効にしておく必要があります。これが私のコードです

flowplayer_settings.clip.onCuepoint = [config.de, function(clip, point) {
   this.pause();
   this.hide();

   $("#question").show();

   $.ajax({
     url: config.qp,
     success: function(data) {
       $("#question").html(data);
       $('#advance').click(function() {
         $f().show();                                                                                                                                                                                                                  
         $f().resume();
       });
     },
     dataType: 'html'
   });
 }];

コードに、質問に正しく答えた後に表示される#advanceボタンをクリックすると、別の質問が表示されます。キューポイントは無限に呼び出されるようです。理解できません。何かアドバイスはありますか?どうもありがとう。

4

1 に答える 1

2

私は汚い解決策で解決しました。私はそれを誇りに思っていませんが、この問題を解決するためのより良い方法を見つけていません。キューポイントが既に実行されているかどうかをチェックするフラグを設定しただけで、実行されている場合はキューポイント コードをスキップします。

flowplayer_settings.clip.onCuepoint = [config.de, function(clip, point) {
if (flag == 1) {
  this.pause();

  if (this.isFullscreen()) {
    this.toggleFullscreen();
  }

  $.blockUI({ message: $("#question"), css: { top: '30%' } });

  $.ajax({
    url: config.qp,
    success: function(data) {
      $("#question").html(data);
      flag = 0;

      $('#advance').click( function () {
        $.unblockUI();
      });

      $('#failure > button').click( function () {
        $.unblockUI();
        location.reload();
      });

    },
    dataType: 'html'
  });
}
于 2012-07-18T09:27:15.770 に答える