diff options
author | Li Haoyi <haoyi@dropbox.com> | 2014-11-02 04:57:37 -0800 |
---|---|---|
committer | Li Haoyi <haoyi@dropbox.com> | 2014-11-02 04:57:37 -0800 |
commit | a33254276bd211bf33be86eeb871ddbfe36fdb47 (patch) | |
tree | b257d473be4fa110f7846f372ea94fc6714dad90 /examples/demos/src/main/scala/canvasapp/Clock.scala | |
parent | d00a2e25a9ee527fa39feb04c3137715501e9fda (diff) | |
download | hands-on-scala-js-a33254276bd211bf33be86eeb871ddbfe36fdb47.tar.gz hands-on-scala-js-a33254276bd211bf33be86eeb871ddbfe36fdb47.tar.bz2 hands-on-scala-js-a33254276bd211bf33be86eeb871ddbfe36fdb47.zip |
Moved `examples` into `examples/demos`, sketched out a simple example cross-module
Diffstat (limited to 'examples/demos/src/main/scala/canvasapp/Clock.scala')
-rw-r--r-- | examples/demos/src/main/scala/canvasapp/Clock.scala | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/examples/demos/src/main/scala/canvasapp/Clock.scala b/examples/demos/src/main/scala/canvasapp/Clock.scala new file mode 100644 index 0000000..af9d8aa --- /dev/null +++ b/examples/demos/src/main/scala/canvasapp/Clock.scala @@ -0,0 +1,51 @@ +package canvasapp + + +import org.scalajs.dom + +import scala.scalajs.js +import scala.scalajs.js.annotation.JSExport +@JSExport +object Clock extends{ + @JSExport + def main(canvas: dom.HTMLCanvasElement) = { + /*setup*/ + val renderer = canvas.getContext("2d") + .asInstanceOf[dom.CanvasRenderingContext2D] + + canvas.width = canvas.parentElement.clientWidth + canvas.height = canvas.parentElement.clientHeight + + val gradient = renderer.createLinearGradient( + canvas.width / 2 - 100, 0, canvas.width/ 2 + 100, 0 + ) + gradient.addColorStop(0,"red") + gradient.addColorStop(0.5,"green") + gradient.addColorStop(1,"blue") + renderer.fillStyle = gradient + //renderer.fillStyle = "black" + + renderer.textAlign = "center" + renderer.textBaseline = "middle" + + /*code*/ + def render() = { + val date = new js.Date() + renderer.clearRect( + 0, 0, canvas.width, canvas.height + ) + + renderer.font = "75px sans-serif" + renderer.fillText( + Seq( + date.getHours(), + date.getMinutes(), + date.getSeconds() + ).mkString(":"), + canvas.width / 2, + canvas.height / 2 + ) + } + dom.setInterval(render _, 1000) + } +}
\ No newline at end of file |