{"id":1050,"date":"2015-05-14T07:44:50","date_gmt":"2015-05-14T05:44:50","guid":{"rendered":"http:\/\/www.robinglauser.ch\/blog\/?p=1050"},"modified":"2015-05-13T23:33:13","modified_gmt":"2015-05-13T21:33:13","slug":"theaterjs-simulate-human-typing-effect","status":"publish","type":"post","link":"https:\/\/www.robinglauser.ch\/blog\/2015\/05\/14\/theaterjs-simulate-human-typing-effect\/","title":{"rendered":"TheaterJS &#8211; Simulate human typing effect"},"content":{"rendered":"<p>The TheaterJS simulates a human which is typing, by using a effect similar to typing on a typewriter.<\/p>\n<p>The plugin also simulates error inputs and occasionally types in the wrong letter to perfect the simulation.<\/p>\n<p>On the <a href=\"http:\/\/gabinaureche.com\/TheaterJS\/\" target=\"_blank\">demo page<\/a> of the plugin you can view the conversation between Luke and Darth Vader in Star Wars VI.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">var theater = new TheaterJS();\r\n\r\ntheater\r\n  .describe(&quot;Vader&quot;, { speed: .8, accuracy: .6, invincibility: 4 }, &quot;#vader&quot;)\r\n  .describe(&quot;Luke&quot;, .6, &quot;#luke&quot;);<\/pre>\n<p>You can set the accuracy and invincibility (Number of characters the actor can type without error) for each actor.<\/p>\n<p>Demo:\u00a0<a href=\"http:\/\/gabinaureche.com\/TheaterJS\/\" target=\"_blank\">http:\/\/gabinaureche.com\/TheaterJS\/<\/a><\/p>\n<p>Github:\u00a0<a href=\"https:\/\/github.com\/Zhouzi\/TheaterJS\" target=\"_blank\">https:\/\/github.com\/Zhouzi\/TheaterJS<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p class=\"excerpt\">The TheaterJS simulates a human which is typing, by using a effect similar to typing on a typewriter. The plugin also simulates error inputs and occasionally types in the wrong letter to perfect the simulation. On the demo page of the plugin you can view the conversation between Luke and Darth Vader in Star Wars VI. var theater = new &#8230; <a class=\"read-more\" href=\"https:\/\/www.robinglauser.ch\/blog\/2015\/05\/14\/theaterjs-simulate-human-typing-effect\/\">Read More<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[45],"tags":[],"class_list":["post-1050","post","type-post","status-publish","format-standard","hentry","category-development"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>TheaterJS - Simulate human typing effect - Robin Glauser<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.robinglauser.ch\/blog\/2015\/05\/14\/theaterjs-simulate-human-typing-effect\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"TheaterJS - Simulate human typing effect - Robin Glauser\" \/>\n<meta property=\"og:description\" content=\"The TheaterJS simulates a human which is typing, by using a effect similar to typing on a typewriter. The plugin also simulates error inputs and occasionally types in the wrong letter to perfect the simulation. On the demo page of the plugin you can view the conversation between Luke and Darth Vader in Star Wars VI. var theater = new ... Read More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.robinglauser.ch\/blog\/2015\/05\/14\/theaterjs-simulate-human-typing-effect\/\" \/>\n<meta property=\"og:site_name\" content=\"Robin Glauser\" \/>\n<meta property=\"article:published_time\" content=\"2015-05-14T05:44:50+00:00\" \/>\n<meta name=\"author\" content=\"Robin Glauser\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@robinglauser\" \/>\n<meta name=\"twitter:site\" content=\"@robinglauser\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Robin Glauser\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.robinglauser.ch\/blog\/2015\/05\/14\/theaterjs-simulate-human-typing-effect\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.robinglauser.ch\/blog\/2015\/05\/14\/theaterjs-simulate-human-typing-effect\/\"},\"author\":{\"name\":\"Robin Glauser\",\"@id\":\"https:\/\/www.robinglauser.ch\/blog\/#\/schema\/person\/e1a94504a6ff5171fa13670932514b19\"},\"headline\":\"TheaterJS &#8211; Simulate human typing effect\",\"datePublished\":\"2015-05-14T05:44:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.robinglauser.ch\/blog\/2015\/05\/14\/theaterjs-simulate-human-typing-effect\/\"},\"wordCount\":118,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.robinglauser.ch\/blog\/#\/schema\/person\/e1a94504a6ff5171fa13670932514b19\"},\"articleSection\":[\"Development\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.robinglauser.ch\/blog\/2015\/05\/14\/theaterjs-simulate-human-typing-effect\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.robinglauser.ch\/blog\/2015\/05\/14\/theaterjs-simulate-human-typing-effect\/\",\"url\":\"https:\/\/www.robinglauser.ch\/blog\/2015\/05\/14\/theaterjs-simulate-human-typing-effect\/\",\"name\":\"TheaterJS - Simulate human typing effect - Robin Glauser\",\"isPartOf\":{\"@id\":\"https:\/\/www.robinglauser.ch\/blog\/#website\"},\"datePublished\":\"2015-05-14T05:44:50+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.robinglauser.ch\/blog\/2015\/05\/14\/theaterjs-simulate-human-typing-effect\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.robinglauser.ch\/blog\/2015\/05\/14\/theaterjs-simulate-human-typing-effect\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.robinglauser.ch\/blog\/2015\/05\/14\/theaterjs-simulate-human-typing-effect\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.robinglauser.ch\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"TheaterJS &#8211; Simulate human typing effect\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.robinglauser.ch\/blog\/#website\",\"url\":\"https:\/\/www.robinglauser.ch\/blog\/\",\"name\":\"Robin Glauser\",\"description\":\"My Blog about Development, Design and my random thoughts.\",\"publisher\":{\"@id\":\"https:\/\/www.robinglauser.ch\/blog\/#\/schema\/person\/e1a94504a6ff5171fa13670932514b19\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.robinglauser.ch\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.robinglauser.ch\/blog\/#\/schema\/person\/e1a94504a6ff5171fa13670932514b19\",\"name\":\"Robin Glauser\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2015\/10\/DSC_1244_small.jpg\",\"url\":\"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2015\/10\/DSC_1244_small.jpg\",\"contentUrl\":\"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2015\/10\/DSC_1244_small.jpg\",\"width\":800,\"height\":530,\"caption\":\"Robin Glauser\"},\"logo\":{\"@id\":\"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2015\/10\/DSC_1244_small.jpg\"},\"description\":\"I'm a web developer.\",\"sameAs\":[\"https:\/\/www.robinglauser.ch\",\"https:\/\/www.instagram.com\/robinglauser\/\",\"https:\/\/x.com\/robinglauser\"],\"url\":\"https:\/\/www.robinglauser.ch\/blog\/author\/robin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"TheaterJS - Simulate human typing effect - Robin Glauser","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.robinglauser.ch\/blog\/2015\/05\/14\/theaterjs-simulate-human-typing-effect\/","og_locale":"en_US","og_type":"article","og_title":"TheaterJS - Simulate human typing effect - Robin Glauser","og_description":"The TheaterJS simulates a human which is typing, by using a effect similar to typing on a typewriter. The plugin also simulates error inputs and occasionally types in the wrong letter to perfect the simulation. On the demo page of the plugin you can view the conversation between Luke and Darth Vader in Star Wars VI. var theater = new ... Read More","og_url":"https:\/\/www.robinglauser.ch\/blog\/2015\/05\/14\/theaterjs-simulate-human-typing-effect\/","og_site_name":"Robin Glauser","article_published_time":"2015-05-14T05:44:50+00:00","author":"Robin Glauser","twitter_card":"summary_large_image","twitter_creator":"@robinglauser","twitter_site":"@robinglauser","twitter_misc":{"Written by":"Robin Glauser","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.robinglauser.ch\/blog\/2015\/05\/14\/theaterjs-simulate-human-typing-effect\/#article","isPartOf":{"@id":"https:\/\/www.robinglauser.ch\/blog\/2015\/05\/14\/theaterjs-simulate-human-typing-effect\/"},"author":{"name":"Robin Glauser","@id":"https:\/\/www.robinglauser.ch\/blog\/#\/schema\/person\/e1a94504a6ff5171fa13670932514b19"},"headline":"TheaterJS &#8211; Simulate human typing effect","datePublished":"2015-05-14T05:44:50+00:00","mainEntityOfPage":{"@id":"https:\/\/www.robinglauser.ch\/blog\/2015\/05\/14\/theaterjs-simulate-human-typing-effect\/"},"wordCount":118,"commentCount":0,"publisher":{"@id":"https:\/\/www.robinglauser.ch\/blog\/#\/schema\/person\/e1a94504a6ff5171fa13670932514b19"},"articleSection":["Development"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.robinglauser.ch\/blog\/2015\/05\/14\/theaterjs-simulate-human-typing-effect\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.robinglauser.ch\/blog\/2015\/05\/14\/theaterjs-simulate-human-typing-effect\/","url":"https:\/\/www.robinglauser.ch\/blog\/2015\/05\/14\/theaterjs-simulate-human-typing-effect\/","name":"TheaterJS - Simulate human typing effect - Robin Glauser","isPartOf":{"@id":"https:\/\/www.robinglauser.ch\/blog\/#website"},"datePublished":"2015-05-14T05:44:50+00:00","breadcrumb":{"@id":"https:\/\/www.robinglauser.ch\/blog\/2015\/05\/14\/theaterjs-simulate-human-typing-effect\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.robinglauser.ch\/blog\/2015\/05\/14\/theaterjs-simulate-human-typing-effect\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.robinglauser.ch\/blog\/2015\/05\/14\/theaterjs-simulate-human-typing-effect\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.robinglauser.ch\/blog\/"},{"@type":"ListItem","position":2,"name":"TheaterJS &#8211; Simulate human typing effect"}]},{"@type":"WebSite","@id":"https:\/\/www.robinglauser.ch\/blog\/#website","url":"https:\/\/www.robinglauser.ch\/blog\/","name":"Robin Glauser","description":"My Blog about Development, Design and my random thoughts.","publisher":{"@id":"https:\/\/www.robinglauser.ch\/blog\/#\/schema\/person\/e1a94504a6ff5171fa13670932514b19"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.robinglauser.ch\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.robinglauser.ch\/blog\/#\/schema\/person\/e1a94504a6ff5171fa13670932514b19","name":"Robin Glauser","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2015\/10\/DSC_1244_small.jpg","url":"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2015\/10\/DSC_1244_small.jpg","contentUrl":"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2015\/10\/DSC_1244_small.jpg","width":800,"height":530,"caption":"Robin Glauser"},"logo":{"@id":"https:\/\/www.robinglauser.ch\/blog\/wp-content\/uploads\/2015\/10\/DSC_1244_small.jpg"},"description":"I'm a web developer.","sameAs":["https:\/\/www.robinglauser.ch","https:\/\/www.instagram.com\/robinglauser\/","https:\/\/x.com\/robinglauser"],"url":"https:\/\/www.robinglauser.ch\/blog\/author\/robin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.robinglauser.ch\/blog\/wp-json\/wp\/v2\/posts\/1050","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.robinglauser.ch\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.robinglauser.ch\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.robinglauser.ch\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.robinglauser.ch\/blog\/wp-json\/wp\/v2\/comments?post=1050"}],"version-history":[{"count":3,"href":"https:\/\/www.robinglauser.ch\/blog\/wp-json\/wp\/v2\/posts\/1050\/revisions"}],"predecessor-version":[{"id":1053,"href":"https:\/\/www.robinglauser.ch\/blog\/wp-json\/wp\/v2\/posts\/1050\/revisions\/1053"}],"wp:attachment":[{"href":"https:\/\/www.robinglauser.ch\/blog\/wp-json\/wp\/v2\/media?parent=1050"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.robinglauser.ch\/blog\/wp-json\/wp\/v2\/categories?post=1050"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.robinglauser.ch\/blog\/wp-json\/wp\/v2\/tags?post=1050"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}