\n
Using JavaScript with Articulate Storyline #132: Challenge | Recap
\n
Extend Your E-Learning Development Skills with JavaScript
\n
In a recent screencast challenge, we looked at using variables in e-learning. Since most course designers don’t work with variables, it was a good opportunity to learn how variables can be used to create more dynamic and personalized learning experiences.
\n
Another way to create dynamic courses is by using JavaScript, which is a scripting language that allows users to interact with web pages. Events like hovering, clicking, and typing can execute JavaScript to trigger an action.
\n
In Articulate Storyline, this is all handled for you with built-in triggers. You don’t need to know a thing about JavaScript to build advanced courses.
\n
But Storyline is designed to grow with you. If you look down the list of triggers, you’ll find one dedicated to executing JavaScript.
\n
\n
Keep in mind that you do not need to learn JavaScript to create highly interactive projects in Storyline. Storyline’s states, triggers, and layers are all you need to create Guru-worthy projects.
\n
Challenge of the Week
\n
This week, your challenge is to share a Storyline example that features JavaScript. You don’t need to build anything complicated or overly technical. Instead, focus on learning how to insert JavaScript and make something happen.
\n
JavaScript isn’t the easiest thing to learn. If your project doesn’t work as intended, don’t sweat it. I’ll still feature your work in the recap.
\n
Finally, keep in mind that Articulate doesn’t provide support for using JavaScript. If you run into any sticking points this week, please post your questions in the Building Better Courses forums. If the community can help, they will.
\n
JavaScript Examples from the Articulate Community
\n
The Articulate community has shared some amazing examples, source files, and tutorials that can help you get started. Feel free to use any of the Storyline-JavaScript downloads as the starting point for your project.
\n
Zsolt Olah
\n
\n
Zsolt Olah comes up with some highly creative ways to include JavaScript with Storyline. He also does a fantastic job of writing about his projects.
\n
Here are some articles, demos, and tutorials that will help you get started working with JavaScript in Storyline:
\n
\n
Melissa Milloway
\n
\n
Every time I open Twitter, it seems Melissa Milloway has posted another advanced idea for blending programming languages with Storyline. Here are a few of my favorites:
\n
\n
Aman Vohra
\n
\n
If you follow the weekly challenges, you know Aman Vohra is someone who likes to share advanced ways to push Storyline’s limits. Here are a few of Aman’s examples that feature JavaScript:
\n
\n
Kristin Anthony
\n
\n
Kristin Anthony shared some super-cool projects that feature JavaScript and Storyline. Check out her posts below because she does a great job of writing about her development process.
\n
\n
Storyline+JavaScript Source Files
\n
\n
Resources
\n
Product support articles
\n
\n
Last Week’s Challenge:
\n
Before you geek out on this week’s e-learning challenge, take a look at the blurred background designs your fellow community members shared over the past week:
\n
\n
Blurred Backgrounds in E-Learning RECAP #131: Challenge | Recap
\n
Wishing you a JavaScriptastic week, E-Learning Heroes!
\n
New to the E-Learning Challenges?
\n
The weekly challenges are ongoing opportunities to learn, share, and build your e-learning portfolios. You can jump into any or all of the previous challenges anytime you want. I’ll update the recap posts to include your demos.
","kudosSumWeight":0,"postTime":"2016-05-27T16:19:32.000-07:00","images":{"__typename":"AssociatedImageConnection","edges":[{"__typename":"AssociatedImageEdge","cursor":"MjUuMnwyLjF8b3wyNXxfTlZffDE","node":{"__ref":"AssociatedImage:{\"url\":\"https://community.articulate.com/t5/s/rwgqn69235/images/bS0xMTQ1MjU2LTU4NTJpODc2MzQ5RTdFNkY1ODg5Mw?revision=1\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMnwyLjF8b3wyNXxfTlZffDI","node":{"__ref":"AssociatedImage:{\"url\":\"https://community.articulate.com/t5/s/rwgqn69235/images/bS0xMTQ1MjU2LTYwMjY5aTQwREM0MTE1NTMwMjRCQjI?revision=1\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMnwyLjF8b3wyNXxfTlZffDM","node":{"__ref":"AssociatedImage:{\"url\":\"https://community.articulate.com/t5/s/rwgqn69235/images/bS0xMTQ1MjU2LTgwNDcwaUM0RThDN0E1MDE0QjU0Rjk?revision=1\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMnwyLjF8b3wyNXxfTlZffDQ","node":{"__ref":"AssociatedImage:{\"url\":\"https://community.articulate.com/t5/s/rwgqn69235/images/bS0xMTQ1MjU2LTc5MjZpNEVDNUQzMjBBRTI2NzhBMg?revision=1\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMnwyLjF8b3wyNXxfTlZffDU","node":{"__ref":"AssociatedImage:{\"url\":\"https://community.articulate.com/t5/s/rwgqn69235/images/bS0xMTQ1MjU2LTQ3MTY4aTNFODY0MDc4MEM2OEIwRTc?revision=1\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMnwyLjF8b3wyNXxfTlZffDY","node":{"__ref":"AssociatedImage:{\"url\":\"https://community.articulate.com/t5/s/rwgqn69235/images/bS0xMTQ1MjU2LTY2OTY0aUM4QUExRDNBOThFOTZBMTk?revision=1\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMnwyLjF8b3wyNXxfTlZffDc","node":{"__ref":"AssociatedImage:{\"url\":\"https://community.articulate.com/t5/s/rwgqn69235/images/bS0xMTQ1MjU2LTI0MjM2aTdEMDZDMUY2MEExNzVCNDk?revision=1\"}"}}],"totalCount":7,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"attachments":{"__typename":"AttachmentConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"tags":{"__typename":"TagConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[{"__typename":"TagEdge","cursor":"MjUuMnwyLjF8b3wxMHxfTlZffDE","node":{"__typename":"Tag","id":"tag:E-Learning Challenge","text":"E-Learning Challenge","time":"2015-11-11T20:02:32.000-08:00","lastActivityTime":null,"messagesCount":null,"followersCount":null}}]},"timeToRead":3,"rawTeaser":"","introduction":"","coverImage":null,"coverImageProperties":{"__typename":"CoverImageProperties","style":"STANDARD","titlePosition":"BOTTOM","altText":""},"currentRevision":{"__ref":"Revision:revision:1145256_1"},"latestVersion":{"__typename":"FriendlyVersion","major":"1","minor":"0"},"metrics":{"__typename":"MessageMetrics","views":1461},"visibilityScope":"PUBLIC","canonicalUrl":null,"seoTitle":null,"seoDescription":null,"placeholder":false,"originalMessageForPlaceholder":null,"contributors":{"__typename":"UserConnection","edges":[]},"nonCoAuthorContributors":{"__typename":"UserConnection","edges":[]},"coAuthors":{"__typename":"UserConnection","edges":[]},"blogMessagePolicies":{"__typename":"BlogMessagePolicies","canDoAuthoringActionsOnBlog":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.blog.action_can_do_authoring_action.accessDenied","key":"error.lithium.policies.blog.action_can_do_authoring_action.accessDenied","args":[]}}},"archivalData":null,"customFields":[],"revisions({\"constraints\":{\"isPublished\":{\"eq\":true}},\"first\":1})":{"__typename":"RevisionConnection","totalCount":1}},"Conversation:conversation:1145256":{"__typename":"Conversation","id":"conversation:1145256","solved":false,"topic":{"__ref":"BlogTopicMessage:message:1145256"},"lastPostingActivityTime":"2022-11-07T02:19:27.000-08:00","lastPostTime":"2022-11-07T02:19:27.000-08:00","unreadReplyCount":306,"isSubscribed":false},"ModerationData:moderation_data:1145256":{"__typename":"ModerationData","id":"moderation_data:1145256","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"AssociatedImage:{\"url\":\"https://community.articulate.com/t5/s/rwgqn69235/images/bS0xMTQ1MjU2LTU4NTJpODc2MzQ5RTdFNkY1ODg5Mw?revision=1\"}":{"__typename":"AssociatedImage","url":"https://community.articulate.com/t5/s/rwgqn69235/images/bS0xMTQ1MjU2LTU4NTJpODc2MzQ5RTdFNkY1ODg5Mw?revision=1","title":"uploads_rte_qnlfavks_using-javascript-in-storyline.png","associationType":"BODY","width":760,"height":380,"altText":null},"AssociatedImage:{\"url\":\"https://community.articulate.com/t5/s/rwgqn69235/images/bS0xMTQ1MjU2LTYwMjY5aTQwREM0MTE1NTMwMjRCQjI?revision=1\"}":{"__typename":"AssociatedImage","url":"https://community.articulate.com/t5/s/rwgqn69235/images/bS0xMTQ1MjU2LTYwMjY5aTQwREM0MTE1NTMwMjRCQjI?revision=1","title":"uploads_rte_mcantlek_execute-javascript.jpg","associationType":"BODY","width":600,"height":300,"altText":null},"AssociatedImage:{\"url\":\"https://community.articulate.com/t5/s/rwgqn69235/images/bS0xMTQ1MjU2LTgwNDcwaUM0RThDN0E1MDE0QjU0Rjk?revision=1\"}":{"__typename":"AssociatedImage","url":"https://community.articulate.com/t5/s/rwgqn69235/images/bS0xMTQ1MjU2LTgwNDcwaUM0RThDN0E1MDE0QjU0Rjk?revision=1","title":"uploads_rte_efpdnrqc_zsolt-olah-javascript-storyline.jpg","associationType":"BODY","width":500,"height":250,"altText":null},"AssociatedImage:{\"url\":\"https://community.articulate.com/t5/s/rwgqn69235/images/bS0xMTQ1MjU2LTc5MjZpNEVDNUQzMjBBRTI2NzhBMg?revision=1\"}":{"__typename":"AssociatedImage","url":"https://community.articulate.com/t5/s/rwgqn69235/images/bS0xMTQ1MjU2LTc5MjZpNEVDNUQzMjBBRTI2NzhBMg?revision=1","title":"uploads_rte_kratxwsv_change-background-color-in-Storyline.png","associationType":"BODY","width":698,"height":400,"altText":null},"AssociatedImage:{\"url\":\"https://community.articulate.com/t5/s/rwgqn69235/images/bS0xMTQ1MjU2LTQ3MTY4aTNFODY0MDc4MEM2OEIwRTc?revision=1\"}":{"__typename":"AssociatedImage","url":"https://community.articulate.com/t5/s/rwgqn69235/images/bS0xMTQ1MjU2LTQ3MTY4aTNFODY0MDc4MEM2OEIwRTc?revision=1","title":"uploads_rte_tupancgi_Aman-Vohra-Weather-Widget-Storyline.jpg","associationType":"BODY","width":500,"height":287,"altText":null},"AssociatedImage:{\"url\":\"https://community.articulate.com/t5/s/rwgqn69235/images/bS0xMTQ1MjU2LTY2OTY0aUM4QUExRDNBOThFOTZBMTk?revision=1\"}":{"__typename":"AssociatedImage","url":"https://community.articulate.com/t5/s/rwgqn69235/images/bS0xMTQ1MjU2LTY2OTY0aUM4QUExRDNBOThFOTZBMTk?revision=1","title":"uploads_rte_txzkcyps_GDS-Challenge-No2-Zombie-Acme-U-KristinAnthony.jpg","associationType":"BODY","width":500,"height":268,"altText":null},"AssociatedImage:{\"url\":\"https://community.articulate.com/t5/s/rwgqn69235/images/bS0xMTQ1MjU2LTI0MjM2aTdEMDZDMUY2MEExNzVCNDk?revision=1\"}":{"__typename":"AssociatedImage","url":"https://community.articulate.com/t5/s/rwgqn69235/images/bS0xMTQ1MjU2LTI0MjM2aTdEMDZDMUY2MEExNzVCNDk?revision=1","title":"uploads_rte_tupolrjh_blurred-background-images-in-elearning.jpg","associationType":"BODY","width":760,"height":380,"altText":null},"Revision:revision:1145256_1":{"__typename":"Revision","id":"revision:1145256_1","lastEditTime":"2016-05-27T16:19:32.000-07:00"},"BlogReplyMessage:message:1145325":{"__typename":"BlogReplyMessage","id":"message:1145325","conversation":{"__ref":"Conversation:conversation:1145256"},"author":{"__ref":"User:user:536451"},"revisionNum":1,"uid":1145325,"depth":2,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Blog:board:e-learning-challenges"},"subject":"Re: Using JavaScript and Articulate Storyline #132","readOnly":false,"editFrozen":false,"moderationData":{"__ref":"ModerationData:moderation_data:1145325"},"parent":{"__ref":"BlogReplyMessage:message:1145273"},"body":"Well call me crazy - I'm working about 80 hrs a week right now and am supposed to be working now but I could not resist this one. The JS in this example takes a number and converts it into hours and minutes. I used this in a math game in which the learner was supposed to get Ellen to the bus on time by estimating how long it would take her to perform certain activities before getting to the bus. The learners then had to answer some time-related questions based on the estimate.
This example shows one of the questions. If you look at the source, you will notice there are 3 JS triggers on the second slide - these all calculate the hours and minutes based on a variable called ellenTime but pass the calculated value to 3 separate variables on Storyline. I then adjust 2 of these variables to create 2 incorrect answers.
demo:
http://pinchedhead.articulate-online.com/3796832589source:
https://dl.dropboxusercontent.com/u/73851/JSChallenge.zip ","body@stringLength":"1272","rawBody":"Well call me crazy - I'm working about 80 hrs a week right now and am supposed to be working now but I could not resist this one. The JS in this example takes a number and converts it into hours and minutes. I used this in a math game in which the learner was supposed to get Ellen to the bus on time by estimating how long it would take her to perform certain activities before getting to the bus. The learners then had to answer some time-related questions based on the estimate.
This example shows one of the questions. If you look at the source, you will notice there are 3 JS triggers on the second slide - these all calculate the hours and minutes based on a variable called ellenTime but pass the calculated value to 3 separate variables on Storyline. I then adjust 2 of these variables to create 2 incorrect answers.
demo:
http://pinchedhead.articulate-online.com/3796832589source:
https://dl.dropboxusercontent.com/u/73851/JSChallenge.zip ","author":{"__ref":"User:user:1240136"},"postTime":"2016-05-28T13:45:29.000-07:00","customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"repliesCount":7},"Revision:revision:1145325_1":{"__typename":"Revision","id":"revision:1145325_1","lastEditTime":"2016-05-29T22:50:42.000-07:00"},"QueryVariables:ReplyList:message:1145325:1":{"__typename":"QueryVariables","id":"ReplyList:message:1145325:1","value":{"id":"message:1145325","first":10,"sorts":{"postTime":{"direction":"ASC"}},"repliesFirst":3,"repliesFirstDepthThree":1,"repliesSorts":{"postTime":{"direction":"ASC"}},"useAvatar":true,"useAuthorLogin":true,"useAuthorRank":true,"useBody":true,"useKudosCount":true,"useTimeToRead":false,"useMedia":false,"useReadOnlyIcon":false,"useRepliesCount":true,"useSearchSnippet":false,"useAcceptedSolutionButton":false,"useSolvedBadge":false,"useAttachments":false,"attachmentsFirst":5,"useTags":false,"useNodeAncestors":false,"useUserHoverCard":false,"useNodeHoverCard":false,"useModerationStatus":true,"usePreviewSubjectModal":false,"useMessageStatus":true}},"ROOT_MUTATION":{"__typename":"Mutation"},"CachedAsset:text:en_US-shared/client/components/users/UserAvatar-1743515094512":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/users/UserAvatar-1743515094512","value":{"altText":"{login}'s avatar","altTextGeneric":"User's avatar"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/ranks/UserRankLabel-1743515094512":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/ranks/UserRankLabel-1743515094512","value":{"altTitle":"Icon for {rankName} rank"},"localOverride":false},"CachedAsset:text:en_US-components/users/UserRegistrationDate-1743515094512":{"__typename":"CachedAsset","id":"text:en_US-components/users/UserRegistrationDate-1743515094512","value":{"noPrefix":"{date}","withPrefix":"Joined {date}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/nodes/NodeAvatar-1743515094512":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/nodes/NodeAvatar-1743515094512","value":{"altTitle":"Node avatar for {nodeTitle}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/nodes/NodeDescription-1743515094512":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/nodes/NodeDescription-1743515094512","value":{"description":"{description}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/ThreadedReplyList-1743515094512":{"__typename":"CachedAsset","id":"text:en_US-components/messages/ThreadedReplyList-1743515094512","value":{"title":"{count, plural, one{# Reply} other{# Replies}}","title@board:BLOG":"{count, plural, one{# Comment} other{# Comments}}","title@board:TKB":"{count, plural, one{# Comment} other{# Comments}}","title@board:IDEA":"{count, plural, one{# Comment} other{# Comments}}","title@board:OCCASION":"{count, plural, one{# Comment} other{# Comments}}","noRepliesTitle":"No Replies","noRepliesTitle@board:BLOG":"No Comments","noRepliesTitle@board:TKB":"No Comments","noRepliesTitle@board:IDEA":"No Comments","noRepliesTitle@board:OCCASION":"No Comments","noRepliesDescription":"Be the first to reply","noRepliesDescription@board:BLOG":"Be the first to comment","noRepliesDescription@board:TKB":"Be the first to comment","noRepliesDescription@board:IDEA":"Be the first to comment","noRepliesDescription@board:OCCASION":"Be the first to comment","messageReadOnlyAlert:BLOG":"Comments have been turned off for this post","messageReadOnlyAlert:TKB":"Comments have been turned off for this article","messageReadOnlyAlert:IDEA":"Comments have been turned off for this idea","messageReadOnlyAlert:FORUM":"Replies have been turned off for this discussion","messageReadOnlyAlert:OCCASION":"Comments have been turned off for this event"},"localOverride":false},"CachedAsset:text:en_US-components/tags/TagView/TagViewChip-1743515094512":{"__typename":"CachedAsset","id":"text:en_US-components/tags/TagView/TagViewChip-1743515094512","value":{"tagLabelName":"Tag name {tagName}"},"localOverride":false}}}},"page":"/blogs/BlogMessagePage/BlogMessagePage","query":{"boardId":"e-learning-challenges","messageSubject":"using-javascript-and-articulate-storyline-132","messageId":"1145256","replyId":"1145325"},"buildId":"Btkyb7T6TeYM9D2gUmiOv","runtimeConfig":{"buildInformationVisible":false,"logLevelApp":"info","logLevelMetrics":"info","openTelemetryClientEnabled":false,"openTelemetryConfigName":"articulate","openTelemetryServiceVersion":"25.2.0","openTelemetryUniverse":"prod","openTelemetryCollector":"http://localhost:4318","openTelemetryRouteChangeAllowedTime":"5000","apolloDevToolsEnabled":false,"inboxMuteWipFeatureEnabled":false},"isFallback":false,"isExperimentalCompile":false,"dynamicIds":["./components/customComponent/CustomComponent/CustomComponent.tsx","./components/community/Navbar/NavbarWidget.tsx","./components/community/Breadcrumb/BreadcrumbWidget.tsx","./components/blogs/BlogArticleWidget/BlogArticleWidget.tsx","./components/messages/MessageView/MessageViewStandard/MessageViewStandard.tsx","./components/customComponent/CustomComponentContent/TemplateContent.tsx","../shared/client/components/common/List/UnwrappedList/UnwrappedList.tsx","./components/tags/TagView/TagView.tsx","./components/tags/TagView/TagViewChip/TagViewChip.tsx"],"appGip":true,"scriptLoader":[]}