特定の時間に画像が表示され、その一部がループ パターンで表示されるマルチメディア プレーヤーを構築する必要があります。クライアントが望むように機能するライブラリを見つけることができなかったので、自分で構築しています。
処理できないばかげた問題に遭遇しました:-(グーグルの量はまったく役に立ちませんでした.
私は無数の順列を試しましたが、これが私の Coffeescript 関数の例です:
# The slideshow
showImages = (current_time, exercise) ->
for timing, img of exercises[exercise].animation
# string to float -> to float with one decimal
if current_time >= timing and current_time < (+timing + 0.2).toFixed(1) and current_time > 0.5
this_id = '' + img + '-' + timing.replace '.', '-'n + ''
activeId = $('#slideshow img.active').first().attr('id')
eval("$('#" + activeId + "').fadeOut(500).removeClass('active')")
eval("$('#" + this_id + "').addClass('active')")
break
このコードは多くの点でかなり悪いので、自由に改善できますが、ここに私の主な問題があります。
- アクティブなクラスを持ち、スタックの一番上にあるイメージがフェード アウトします。良い。
- その同じイメージでは、アクティブなクラスが削除されています。良い。
- スタックの一番上の新しいイメージ (#this_id を持つ) がアクティブなクラスを取得します。良い。
- その同じ新しい画像がフェードアウトします!!! 全然ダメ。
コードは以前はもっと単純でしたが、必死になってデバッグを試みた結果、コードはずっと見苦しくなってしまいました。
次の関数を起動する前に関数が完了するのを待っていることを調査しましたが、この例の推奨事項を実装できなかったことにご注意ください。
よろしくお願いします。