元の話題をすり替えて「カクカクしている」(直線しか引けない、と言いたいらしい)とか難癖をつける奴がいたので、また自分の確認・練習も兼ねて。Firefox推奨。
open Dom_html
open Graphics_js
let () = (* open_graph "" *)
Js.Opt.iter
(CoerceTo.canvas (getElementById "canvas2"))
Graphics_js.open_canvas
let rec k = function
| `Up ->
loop [Button_down] (fun status ->
moveto status.mouse_x status.mouse_y;
k `Down)
| `Down ->
loop [Button_up] (fun status ->
k `Up);
loop [Mouse_motion] (fun status ->
lineto status.mouse_x status.mouse_y;
k `Down)
let () = k `Up
後半は
let rec k () =
loop [Button_down] (fun status ->
moveto status.mouse_x status.mouse_y;
loop [Button_up] (fun status -> k ());
loop [Mouse_motion] (fun status ->
lineto status.mouse_x status.mouse_y))
let () = k ()
でも良いはず。わかりにくいからやめておくが。