videoタグで表示している動画をcanvasに描画しているのであれば、requestAnimationFrameを実行するたびに次の処理を実行しているはずです。
(1)canvas全体をクリアする
(2)videoタグの情報をcanvasに出力する
canvasに描画された情報は単なるビットマップ情報なので、アニメーションさせることができません。よって描画内容を変更するためには、必ず上記のような処理を繰り返し実行する必要があります。
動画再生中にユーザがクリックした点は、(1)の処理を実行する際に消えてしまいます。この情報を残すためには、例えば次のように配列等を使用して、クリックされた座標の情報を記録しておき、動画を描画した後に復元する必要があります。
javascript
1
2var axis = [];
3
4// canvasがクリックされた時の処理
5canvas.onclick = funciton(event){
6 // 座標の値は、下記の値にcanvasの表示位置やウィンドウのスクロール量を加味したものになる
7 var x = event.clientX,
8 y = event.clientY;
9
10 axis.push({x : x, y : y});
11};
12
13var render = function(){
14 requestAnimationFrame(render);
15
16 // 動画の内容をcanvasに出力処理
17 ..........................
18 // ユーザがクリックした情報を復元する処理
19 for(var i = 0, length = axis.length; i < length; i++){
20 context.beginPath();
21 context.arc(axis[i].x, axis[i].y, 1, 0, Math.PI * 2, false);
22 context.fill();
23 }
24};
25requestAnimationFrame(render);
上記のサンプルは必要最低限の処理を抜き出して書いているので、実際には他にもきちんと処理を記述する必要があります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/17 00:43