javascript,
1 Topic- Spookily AccruateHello! For this challenge, I reused a character I created way back in 2020, for Challenge #292 (Using Variables). In case you wondered, Zardoz is a cross between Sean Connery and the Zoltan machine from Big. I've upgraded Zardoz with a few tricks I've learned in the meantime, including live polling, a speech animation cycle, and some sneaky Javascript. If Zardoz doesn't successfully read your mind, he can still surprise you with what he does know about you. Does Zardoz know what you're thinking? TRY IT OUT HERE 
- Cost EstimateHi everyone, My company recently developed a children's app using .NET MAUI. It was a slow and expensive process. Plans for an new app are in the works, and the goal is to build a hybrid app this time, leveraging the company's Articulate 360 subscription. As part of a proof of concept exercise, a developer recently used Articulate 360 and Java to recreate several games that were featured in the original, native app. They were exported in a SCORM format and the games actually functioned better than their native counterparts. They also took FAR less time and money to complete. I'm trying to estimate the cost of developing the new hybrid app, and I need someone who has both a developer background and Articulate 360 knowledge. I'm on the content creation end, and this is not my area of expertise. I realize I may be casting a line in the wrong place, but if anyone out there could offer advice, including a better place to search for answers, I'd really appreciate it. Thank you!9Views0likes0Comments
- How To Embed An ElevenLabs Conversational AI Widget Into SL360 Using JS!Hi Heroes, It feels like something new and exciting is always around the corner in the world of generative AI technology, and this week ElevenLabs put themselves firmly in the driving seat of the agentic AI revolution with their new Conversational AI toolkit. If you haven't heard of this yet, check out this video which explains it all: https://www.youtube.com/watch?v=v-EYzZCLF48&ab_channel=ElevenLabs The interactive, animated widget that this toolkit provided is easy to embed anywhere, including directly within an Articulate Storyline 360 project slide! If you're interested in how to get started, I've written a blog post that includes all the steps, including an Execute JavaScript snippet you can use to effortlessly get your agent loaded into your activity: https://discoverelearninguk.com/how-to-set-up-elevenlabs-conversational-ai-widget-in-articulate-storyline-360/ I'm also currently experimenting with the API for the new Conversational toolkit to understand how I can implement it into my eLearning Magic Toolkit plugin for Storyline + WordPress, potentially opening the door for developing real-time voice activated automation all within a Storyline-built eLearning activity! Much more to come very soon. 🚀 --- My name's Chris Hodgson, an eLearning developer and software trainer based in the UK. I enjoy creating fun, unique, and engaging online experiences using Articulate software! Connect with me on LinkedIn - https://www.linkedin.com/in/chrishodgson44/792Views6likes7Comments
- JavaScript Timer QuestionHello! I'm new to using JavaScript in Storyline. But after watching a Learning Dojo video and using Claude to help me put some code together, I was able to come up with the following code to use in an "execute JavaScript" trigger that happens when the learner clicks the Start button for a matching game. My goal is to start a timer when they start the game. It counts in seconds and shows on the screen as they go through the game. When the learner completes the game, it shows them how many seconds it took them. All of that works one time. But if the learner clicks to restart the game, the original timer is still counting from the first go-around, plus a new timer is started, such that it flashes back and forth between one counter and the other. I can't figure out how to stop the timer, reset it, and allow them to start over. Claude suggested the code where it "clears any existing timerId stored in Storyline" -- but while a new timer starts, the old one still keeps going. Is there any solution to this? Thanks for any help! //Getting the player const player = GetPlayer(); //Where to start let sec = 0; //Set up the timer function startTimer() { sec += 1; player.SetVar("timer", sec); } //Clear any existing timerId stored in Storyline let existingTimerId = player.GetVar("timerId"); if (existingTimerId !== null && existingTimerId !== undefined) { clearInterval(existingTimerId); } //Reset the counter sec = 0; player.SetVar("timer", sec); //Start the timer and store the ID in Storyline let timerId = setInterval(startTimer, 1000); player.SetVar("timerId", timerId);Solved41Views0likes2Comments
- Microlearning 2: Electric BoogalooHello! I've been taking part in these challenges for so long, sometimes I get to do a 'sequel' to an earlier demo. In the age of AI, witness the return of DOT - my 'microlearning companion' from 2020's 'Tiny E-Learning Challenge'. This time, she's a little bit more advanced, but no less sarcastic. DOT will respond to pre-filled questions with a range of randomised responses. Her code uses your web browser's built-in text-to-speech feature to read the dialog out loud. This week's demo is the result of a 4-hour 'vibe coding' session with Claude.ai, during which I shared images of my original demo for E-Learning Heroes Challenge 331. I'm still tinkering with DOT's code, so I won't be sharing that here. But if you'd like to know how I used two different fonts in the same course title, you'll find that code in the final section of this course. CHAT TO DOT HERE...89Views3likes1Comment
- Rise notes utilityI added a global utility bar to my Rise course to add a simple 'notes' piece, data is kept in the browser's local storage and it will not write to SCORM. Because of the global nature of this addon, it can be a handy way to make the functionality, and even some branding, always available to users across your entire course. 
- Simple TabsThat’s probably the most accurate way to describe this submission, possibly the most boring interaction I’ve ever produced for an eLearning challenge. Ironically, it’s built around tabs, which can be pretty useful when done right (keep them simple, clean, and don’t overthink it). But here’s the twist: If you manage to stick around for 2 whole minutes, you’ll unlock a reward, a downloadable Storyline file. Because if you’ve got the stamina to survive two minutes of my "creativity," you deserve something. Inside: 🕒 A global timer built with JavaScript 🎞️ Image transitions powered by the Web Animation API 🎁 And who knows, maybe a surprise or two. Launch
- JavaScript for the Rest of Us: A Practical Example in Storyline 360 with Drag and Drop CablesJoin us for the final installment of this engaging webinar series with special guest, Nathanial Hilliard, where we’ll take a closer look at an actual small project that implements several of the ideas introduced in previous sessions, bringing JavaScript to life in your design690Views2likes0Comments
- Pizzamama activity... Soooo tasty!Hi! My name is Adèle. This is my first step in the challenge adventure. I’m quite proud to share with you my very first JS project. I’ve used JavaScript in previous projects, but only by “copying and pasting” code. This time, I managed to understand how to find the ID of an object and then customize the JS code myself :-) I hope you’ll find this little example fun!