2016-11-29 4 views
0

ビデオが完了したときに0.0から1まで毎秒再生されるビデオの進行状況を報告するvimeo APIを使用しています。 私は(0.66)の進歩は0.66以上が、私の中にあるときに進捗が66%に達すると、私がやりたいものは何でもループが継続的に発射された場合に何かをしたいcoffeescript javascript ifステートメントからのブレーク

  player.addEvent 'playProgress', (data, id) -> 
       break_loop = false 
       if data.percent >= 0.66 && break_loop is false 
       do_something 
       break_loop = true 

ビデオは66%の進捗状況にあるときから、完了するまでdo_something毎秒発生する、私は一度それを一度実行することはできますか?

+0

'once == false'という行は何を目的としていますか? – Pointy

+0

@pointy私はそれが 'do_something 'の後にループを壊すだろうと思った。 –

+0

更新された質問では、コードは悪い:' break_loop = 'false'は**常に**フラグを' false'に戻しますので、 'if'文で' true'に設定するといいことはありません! – Pointy

答えて

1

new Vimeo JavaScript APIを使用するようにコードを更新し、offを使用してイベントハンドラを削除することをおすすめします。次に、名前付き関数にあなたのイベントハンドラを移動することができます(あるいは、少なくともCoffeeScriptのが名前の関数を持っている最も近いもの)と66%のマークに達したときには、何か自分自身をバインド解除できます

progress = (data) -> 
    return if(data.percent < 0.66) 
    do_something() 
    player.off('timedupdate', progress) 

player.on('timedupdate', progress) 

だけでなく、やるを最新のインターフェースが得られますが、JavaScriptコールバックを使用してかなり一般的なパターンを学習することもできます。

使用している古いAPIにoffのようなものがあるかもしれませんが、ドキュメントが見つかりません。

関連する問題