summaryrefslogtreecommitdiff
path: root/examples/demos/src/main/scala/Splash.scala
diff options
context:
space:
mode:
authorLi Haoyi <haoyi@dropbox.com>2014-11-02 04:57:37 -0800
committerLi Haoyi <haoyi@dropbox.com>2014-11-02 04:57:37 -0800
commita33254276bd211bf33be86eeb871ddbfe36fdb47 (patch)
treeb257d473be4fa110f7846f372ea94fc6714dad90 /examples/demos/src/main/scala/Splash.scala
parentd00a2e25a9ee527fa39feb04c3137715501e9fda (diff)
downloadhands-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/Splash.scala')
-rw-r--r--examples/demos/src/main/scala/Splash.scala43
1 files changed, 43 insertions, 0 deletions
diff --git a/examples/demos/src/main/scala/Splash.scala b/examples/demos/src/main/scala/Splash.scala
new file mode 100644
index 0000000..c68bdca
--- /dev/null
+++ b/examples/demos/src/main/scala/Splash.scala
@@ -0,0 +1,43 @@
+import java.lang.Math._
+
+import org.scalajs.dom
+
+import scala.scalajs.js.annotation.JSExport
+
+@JSExport
+object Splash extends{
+ @JSExport
+ def main(canvas: dom.HTMLCanvasElement) = {
+
+ def clear() = {
+ canvas.width = canvas.parentElement.clientWidth
+ canvas.height = canvas.parentElement.clientHeight
+ }
+ clear()
+
+ val renderer =
+ canvas.getContext("2d")
+ .asInstanceOf[dom.CanvasRenderingContext2D]
+
+ def h = canvas.height
+ def w = canvas.width
+
+ var x = 0.0
+ type Graph = (String, Double => Double)
+ val graphs = Seq[Graph](
+ ("red", sin),
+ ("green", x => 1 - abs(x % 4 - 2)),
+ ("blue", x => pow(sin(x/12), 2) * sin(x))
+ ).zipWithIndex
+ dom.setInterval(() => {
+ x = (x + 1) % w; if (x == 0) clear()
+ for (((color, f), i) <- graphs) {
+ val offset = h / 3 * (i + 0.5)
+ val y = f(x / w * 75) * h / 30
+ renderer.fillStyle = color
+ renderer.fillRect(x, y + offset, 3, 3)
+ }
+ }, 20)
+
+ }
+} \ No newline at end of file