1

私はライブ壁紙を開発しています。私は新しく、この問題に悩まされています。フェードインとフェードアウトのアニメーションを使用したスライドショーのように、キャンバスに画像を1つずつ描画する方法を教えてもらえますか。ビューとレイアウトでこのアニメーションを実行することはできますが、キャンバスで実行することはできません。助けてください!

4

1 に答える 1

0

あなたが意味するjavaのかわからないjavascript

フェードインソリューションに関するいくつかの手がかり:

var delta = 0;
var interval = 0;
var duration = 2000;

setInterval(function() {
  ctx.globalAlpha = 1.0;
  ctx.drawImage(oldImage);

  ctx.globalAlpha = delta / duration;
  ctx.drawImage(nextImage);

  delta += interval;
}, interval);
  • タイマーの代わりにrequestAnimationFrameの使用を検討してください

  • (new Date).getTime()を使用して実際のデルタを計算します

  • いくつかの緩和方程式を試してみてください-例:

alpha = Math.sin(0.5 * Math.PI * delta / duration)

于 2012-04-24T21:34:19.857 に答える