// http://msdn.microsoft.com/en-us/library/ie/dn265037(v=vs.85).aspx /// <summary> /// This is a javascript application. /// </summary> /// <param name="page">HTML document rendered by the web server which can now be enhanced.</param> public Application(IApp page) { // inspired by // http://www.amplifon.co.uk/sounds-of-street-view/how-and-create/index.html new CanvasRenderingContext2D(500, 400).With( async ctx => { // "X:\jsc.svn\examples\javascript\WebGL\WebGLDashedLines\WebGLDashedLines.sln" // using? ctx.canvas.AttachToDocument(); // Marching Ant code var antOffset = 0; // Starting offset value var dashList = new[] { 12.0, 3, 3, 3 }; // Create a dot/dash sequence //while (AttachToDocument) while (true) { ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); // Assign the dashList for the dash sequence ctx.setLineDash(dashList); // Get the current offset ctx.lineDashOffset = antOffset; // Animate the lines ctx.lineJoin = "round"; ctx.lineWidth = 3; ctx.strokeStyle = "blue"; ctx.strokeRect(5, 5, 300, 250); ctx.strokeStyle = "red"; ctx.strokeRect(150, 200, 300, 150); ctx.lineDashOffset = -antOffset; // Reverse animation ctx.lineWidth = 7; ctx.strokeStyle = "green"; ctx.strokeRect(250, 50, 150, 250); antOffset++; if (antOffset >= dashList.Sum()) // Reset offset after total of dash List values { antOffset = 0; } Native.document.title = new { antOffset }.ToString(); // can we see anything? await Task.Delay(15); } } ); }