高速アニメーションを同期させるには、誰もRaphaelで.animateWith()
を使用しましたか?それは文書化されていません。図書館の作成者はvideo demonstrationですが、コードは見つかりません。Raphael .animateWith()の使用方法
私は、ライン(メトロノームの腕)と、最終的にはテンポを示すために上下に移動する台形の "重量"からなるJavascriptメトロノームを持っています。私は作業フィドルhereを持っている、そして問題の行は、次のとおりです。
var ticktock = Raphael.animation({
"50%": { transform:"R20 " + x + "," + y, easing: "sinoid", callback: function() { tick(this, repeats, done); }},
"100%": { transform:"R-20 " + x + "," + y, easing: "sinoid", callback: function() { tick(this, repeats, done); }}
}, interval).repeat(repeats/2);
arm.animate(ticktock);
weight.animateWith(arm, ticktock, ticktock);
あなたがフィドルをチェックアウトし、それを高いテンポと約20ティックを与えた場合、あなたは腕の後ろに体重ラグが表示されるはずです。 (もしそうでなければ数回試してください - マーフィーの法則など)これはまさにanimateWith()が防ごうとしていると思いました。たぶん私はそれを間違って使用しています。
Raphael sourceの.animateWith()関数を見ると、各アニメーションの.startパラメータ(FWIW)が同期されていることがわかります。 Raphael documentationから
ありがとうございます。クロムでは、高頻度ではかなりのずれが現れています(毎分280回試してみてください)。ドキュメントは私にはほとんど意味がありません。関数のソースは、一部のアニメーション配列のアニメーションの「開始」プロパティとちょうど一致するように見えます。多分それはちょうどうまくいかないでしょうか? –
出典:https://github.com/DmitryBaranovskiy/raphael/blob/master/raphael.core.js#L4123 –
@ChrisWilson私にとってはスムーズに作業しています。 Chromeを使用する。私のマシンは3.2Ghz Intel i5、8GBのRAMを搭載したOSX 10.8.3です。 – sweetamylase