storyline 360
29206 TopicsReporting Open-Ended Storyline Block Responses Embedded in Rise
Hi everyone, I’m looking for help with Storyline blocks in Rise. What I need to do is create open-ended questions where learners can type their own responses. Since the client doesn’t want external forms or links, I decided to build these interactions in Storyline and embed them directly in Rise. Now I need to upload this course to our LMS in a way that the learners’ responses from that Storyline block can be sent to me via mail, for example, or maybe there is a different way. As far as I know, this can be done in Storyline by publishing it as a SCORM package and uploading it directly to the LMS (and adjust reporting). However, in Rise, to insert a Storyline block, it needs to be uploaded to Review 360, which means I can’t configure the reporting settings anymore. Even if I pack my Rise course into SCORM, it only tracks data from Rise quizzes, not open-text answers from embedded Storyline blocks. Could you please advise on how this can be done without using forms? Or maybe there are some new ways to work around this? Basically, my main requirements are: the interaction needs to be embedded directly in Rise (so it can match the course design and doesn’t require learners to open external links); learners should be able to type any open-ended responses to the questions; and after submitting, those responses should be sent automatically — either to an email address or to a spreadsheet/database (with an optional follow-up email notification or reminder). Does anyone know a way to make this work?25Views0likes1CommentLocal Storage question
Following a helpful thread about this, I've managed to get sending to local storage working in SL, and retrieving from local storage into another SL, just what I need for use in a Rise project. One JS trigger element I saw in this guidance, was an initial 'clear local storage' line. Will that clear all local storage from the learner's machine? For example, anything that has been saved there from other learning packages? Cheers John.a.Quiz "Next" Button - still shows up after disabled
In my Storyline project (call it Part B), I have a quiz that draws from a question bank. In the slide layers tab, the "Previous" and "Next" Buttons are deselected, while the "Submit" button is enabled. However, when previewing the quiz, "Next" is still showing up. I've tried restarting, deleted the whole scene that contains the quiz and rebuilding it again, and nothing seems to work. In addition, I have another project (call it Part A) that is seemingly formatted the exact same way as Part B, with all the exact same triggers and slide layers, but the "next" button doesn't show up. I've searched all through the project, and it seems that Part A and Part B are identical in how the quizzes are structured and formatted. Any advice or insight would be appreciated!6Views0likes0CommentsLayer is hiding objects on base layer - even when I don't want to
Hello! I started my first new project after updating Storyline and I noticed that there is something wrong with slide layers and slide layer properties. I want layer(s) not to hide objects on base layer. So I went to Slide Layer Properties and un-selected "Hide objects on base layer" from Visibility settings, see the screenshot below. Text continues after picture... After doing this, I went to Preview this slide and for some reason this layer is still hiding the base layer. What should I do? I haven't had this problem before when changing Slide Layer Visibility settings. Thanks for your help! :)207Views0likes21CommentsUsing accessibility checker to turn off accessibility that is on within states of the dial?
Hi everyone, I am updating an old module, and each time I go in, I am using the new accessibility checker to update the module where I was lacking back in the day. I have come across a module where i had a Dial showing their results for a quiz. A screen reader doesn't need to read this as it can just read the score. What I didn't realize was that the dial has layers for every degree (10, 20, 30...) on the dial, and the accessibility is turned on, even though it doesn't show in my Focus Order. So I now am going one by one (and it is slow moving between each item to deselect the accessibility on for each item of the dial). Any ideas of doing this faster, or will the checker eventually allow you to highlight more than one item and deselect the checkbox for a group of items. Right now this would come in handy :) thanksAdvance Triggers with a 360 degree image
Hi 👋 I'm actually trying to work with a 360 image for one of my course. It's the first time I'm working with it and usually, I try to disable the NEXT button until the learner clicked on every interactions of the slide, but it doesn't work with the 360 image. I tried to created variables (true/false) and link it to every marker in my 360 image and put the triggers "change state of the NEXT button to Normal if Variable1 and... is true", but it's like the 360 image is a completely dissociate with the project. Someone have a solution?Custom Gradients & Styles
I would like the ability to save custom gradients. I could see them being added to Gradient Fill > Preset Colours. Although, being able to save them to a colour palette would be even handier. I would also like the ability to save custom styles. Saving them with states would be handiest, although creating a gallery of them that includes each of the state styles would also work. Currently we have the ability to save text styles, but we need the same for shapes.3Views0likes0CommentsGrassblade is not reporting q17 of my assessment as answered
Grassblade is not reporting Q17 of my assessment as answered. Q17 is a custom drop-down with 5 layers, but underneath is a freeform Pick One. So 5 points are not being sent to GrassBlade. When testing on Storyline, all marks add up to 32, as they should. When testing on LMS (LearnDash xAPI) marks add up to 27. Help would be very much appreciated, thanks. JS: var p = GetPlayer(); // --- read inputs --- var pos1 = (p.GetVar("Q17_Pos1") || "").toString(); var pos2 = (p.GetVar("Q17_Pos2") || "").toString(); var pos3 = (p.GetVar("Q17_Pos3") || "").toString(); var pos4 = (p.GetVar("Q17_Pos4") || "").toString(); var pos5 = (p.GetVar("Q17_Pos5") || "").toString(); var score = Number(p.GetVar("Q17_Score")) || 0; // --- xAPI statement --- var statement = { verb: { id: "http://adlnet.gov/expapi/verbs/answered", display: {"en-US":"answered"} }, object: { id: "http://yourdomain.com/storyline/q17", definition: { name: { "en-US": "Q17. Hierarchy of risk control (dropdowns)" }, description: { "en-US": "Learner selected 1–5 positions for each control step." } }, objectType: "Activity" }, result: { response: ["PPE="+pos1,"Eliminate="+pos2,"PreventContact="+pos3,"Reduce="+pos4,"SafeSystems="+pos5].join(" | "), score: { raw: score, min: 0, max: 5 }, success: (score === 5) }, context: { platform: "Storyline with GrassBlade" } }; // --- helper to find ADL in current/parent/top frames --- function getADL() { try { if (window.ADL && window.ADL.XAPIWrapper) return window.ADL; } catch(e){} try { if (window.parent && window.parent.ADL && window.parent.ADL.XAPIWrapper) return window.parent.ADL; } catch(e){} try { if (window.top && window.top.ADL && window.top.ADL.XAPIWrapper) return window.top.ADL; } catch(e){} return null; } // --- retry send until ADL is ready (max ~10s) --- (function sendWithRetry(tries){ var ADLref = getADL(); if (ADLref && ADLref.XAPIWrapper && ADLref.XAPIWrapper.sendStatement) { ADLref.XAPIWrapper.sendStatement(statement, function(){ p.SetVar("Q17_Sent", true); }); } else if (tries < 40) { // 40 * 250ms = 10s setTimeout(function(){ sendWithRetry(tries+1); }, 250); } else { // give up but allow navigation; also expose why for your debug label p.SetVar("Q17_Error", "ADL not found in window/parent/top"); p.SetVar("Q17_Sent", true); } })(0);28Views0likes1Comment