Did you know that you can use the computer's local storage to pass data from one Storyline block to another one within the same Rise course? Well you can and all it takes is a few simple lines of JavaScript code.
This gives you all kinds of customization options for your Rise courses, including capturing and remembering the learners name and other selections they might make as shown here in this Rise example. What other ways might you use this?
Indeed great piece. One question pops out though. I tried using a 'completion' button after a Storyline block and it doesnot work in that case? What is your workaround to get that working?
@Owen, this is great I want to use to create a journal throughout a short course, my only issue is persistence of values between session which will not be possible.
@Math are you using the completion trigger in storyline?
Owen, thank you for sharing this. I've wanted to do something like this for a while. However, my lack of JavaScript knowledge has been a problem, and continues to be as I try to replicate this for one of my own projects.
I'm hoping someone can help me out. I tried to modify the code snippets Owen shared in a quick demo, but they're not working, which means I'm screwing something up. I'm not sure what I'm doing wrong though.
I've attached the Rise and both SL files. I wanted to design it so that in the first SL block someone puts their name in, clicks 1 of 2 guide characters, and then clicks submit. After they click the Continue button in Rise, the second SL block should show their name and the guide character they selected.
Another question related to the example: how does the print certificate feature work in SL block 3? I've looked at some other threads, but they don't seem to work in HTML5 output.
I haven't taken time to fully debug but one thing I noticed is the use of spaces in your JavaScript before the open parenthesis. This will break your code.
For example: var name = player.GetVar ("TextEntry") ;
Should be: var name = player.GetVar("TextEntry");
Try eliminating all of the extra spaces in your code and test it again.
Owen, if your still monitoring.. Does passing the variables from SL blocks work only on computers (local storage)? Since Rise360 is responsive, does this data sharing work on mobile devices? i.e. phone or tablet storage? Thanks
I haven't tried mobile but to be honest, I'm not a fan of storyline blocks in rise ON mobile. I love them for PC/desktop deployments, but on android, they just aren't quite responsive enough. When I have a moment, I'll give it a test on my tablet and let you know the outcome.
Thank you for sharing this excellent example, Owen! I hope you will see my response. Your example was almost exactly what I need, minus the guide character selection. I just need learners to enter their name then have it show up in the certificate. I’ve attempted to recreate your example, but I don’t really know much about JavaScript and I’m stuck on having the name entered from the first Storyline block to show up in the second, certificate Storyline block. It just keeps showing up as null. The course we are creating will not be in an LMS, only posted to a website. I’m including my files here in the hopes that you or someone else from the Community might be able to help me figure out where I have gone wrong. Thank so much in advance for any help that can be provided!
If we could get some pre-made templates for this type of use from articulate would be interesting. However, i think it should be picked up from rise what variables are made available for use and how to handle those should not be needing code.. maybe in the future this type of functions are part of rise blocks. I dont see any reasons why it could not be.
Owen showing the way , hopefully Articulate listens and add their ease of use touch from within rise.
I would like to have some kind of defined content path branched depending on selections for what role the student have. Engineer or sales for instance.. 3C seems highly suitable for this..so that choices have consequences for what content to present to the user.
Much more scenarios in my head. But im guessing a lot more coding.. and i am not a fan of custom coding, two main reasons, i dont like coding :) Second a nightmare to maintain none standard code in large number of courses.
It needs to be built into the tool for anyone to figure out how to use.
I sort of coded in Director, Authorware, flash and c++ back in the day.. But today im over it :)
I shun away from any coding. But i know its power when unleashing good coding with ease of use for the none coder is enormous. Rise is a good example. Limited but growing.
Thank you Owen for pushing the combo of Rise and Storyline blocks boundaries!
I remember a few years ago when i talked about finding the strength in two. Many people said why not only use storyline? Some even said , Rise was not allowed.. Completely missing the point of ease of use and the power that gives for many more people then Storyline specialist. Now rise is standard for most productions but - the combo thinking is gaining ground.
I'm testing it now but it looks like you might have just skipped the step of getting the name from local storage and passing it into the second block before generating the certificate.
Owen, thank you so much for taking the time to review my files and respond so quickly! Your revised file works perfectly, it has solved the issue! I greatly appreciate your help.
Hi Owen! I am attempting this project and I am having an issue retrieving the selected guides. In my retrieval scene I first had the slide executing JS at slide launch. Next, all guide images are set to hidden at slide launch. They each have a trigger to change to normal if their variable is true. Following your instructions I have local storage calling up all variables at slide launch. I did this in hopes that once variables were recalled, then the SL variables would display the conditional images based on the T/F boolean values. Sadly, no guide displayed. Is this because I created two different SL projects? Should this all pull from one project?
42 Replies
This is awesome! Thanks for sharing, Owen. I am looking forward to using this.
Indeed great piece. One question pops out though. I tried using a 'completion' button after a Storyline block and it doesnot work in that case? What is your workaround to get that working?
@Owen, this is great I want to use to create a journal throughout a short course, my only issue is persistence of values between session which will not be possible.
@Math are you using the completion trigger in storyline?
Nope in Rise i want to use the 'Complete' element. When using it with basic Rise blocks it works ( more or less )
When using it with a Storyline block however it ignores it...
Do it need to add some trigger in Storyline to ensure it will be used for completion in Rise ?
Checking that now...
Math
Thx Phil. Your remark put me on the right track. Adding a 'Complete Trigger' in the Storyline fixed it... Great !!!!
This is fascinating! Thanks for sharing Owen!
My pleasure Sarah.
Owen, thank you for sharing this. I've wanted to do something like this for a while. However, my lack of JavaScript knowledge has been a problem, and continues to be as I try to replicate this for one of my own projects.
I'm hoping someone can help me out. I tried to modify the code snippets Owen shared in a quick demo, but they're not working, which means I'm screwing something up. I'm not sure what I'm doing wrong though.
I've attached the Rise and both SL files. I wanted to design it so that in the first SL block someone puts their name in, clicks 1 of 2 guide characters, and then clicks submit. After they click the Continue button in Rise, the second SL block should show their name and the guide character they selected.
Another question related to the example: how does the print certificate feature work in SL block 3? I've looked at some other threads, but they don't seem to work in HTML5 output.
Any help is greatly appreciated. Thank you!
~Brian
I haven't taken time to fully debug but one thing I noticed is the use of spaces in your JavaScript before the open parenthesis. This will break your code.
For example: var name = player.GetVar ("TextEntry") ;
Should be: var name = player.GetVar("TextEntry");
Try eliminating all of the extra spaces in your code and test it again.
Owen, thanks for sharing this is awesome. Didn't even know this was possible.
My pleasure.
Owen - You are a true hero! Thank you so much for sharing this. It's exactly what I was looking for!
Owen, if your still monitoring.. Does passing the variables from SL blocks work only on computers (local storage)? Since Rise360 is responsive, does this data sharing work on mobile devices? i.e. phone or tablet storage? Thanks
I haven't tried mobile but to be honest, I'm not a fan of storyline blocks in rise ON mobile.
I love them for PC/desktop deployments, but on android, they just aren't quite responsive enough.
When I have a moment, I'll give it a test on my tablet and let you know the outcome.
Thank you for sharing this excellent example, Owen! I hope you will see my response. Your example was almost exactly what I need, minus the guide character selection. I just need learners to enter their name then have it show up in the certificate. I’ve attempted to recreate your example, but I don’t really know much about JavaScript and I’m stuck on having the name entered from the first Storyline block to show up in the second, certificate Storyline block. It just keeps showing up as null. The course we are creating will not be in an LMS, only posted to a website. I’m including my files here in the hopes that you or someone else from the Community might be able to help me figure out where I have gone wrong. Thank so much in advance for any help that can be provided!
Review file: Storyline Block Test | Review 360 (articulate.com)
If we could get some pre-made templates for this type of use from articulate would be interesting. However, i think it should be picked up from rise what variables are made available for use and how to handle those should not be needing code.. maybe in the future this type of functions are part of rise blocks. I dont see any reasons why it could not be.
Owen showing the way , hopefully Articulate listens and add their ease of use touch from within rise.
I would like to have some kind of defined content path branched depending on selections for what role the student have. Engineer or sales for instance..
3C seems highly suitable for this..so that choices have consequences for what content to present to the user.
Much more scenarios in my head. But im guessing a lot more coding.. and i am not a fan of custom coding, two main reasons, i dont like coding :) Second a nightmare to maintain none standard code in large number of courses.
It needs to be built into the tool for anyone to figure out how to use.
I sort of coded in Director, Authorware, flash and c++ back in the day.. But today im over it :)
I shun away from any coding. But i know its power when unleashing good coding with ease of use for the none coder is enormous. Rise is a good example. Limited but growing.
Thank you Owen for pushing the combo of Rise and Storyline blocks boundaries!
I remember a few years ago when i talked about finding the strength in two. Many people said why not only use storyline? Some even said , Rise was not allowed..
Completely missing the point of ease of use and the power that gives for many more people then Storyline specialist. Now rise is standard for most productions but - the combo thinking is gaining ground.
I'm testing it now but it looks like you might have just skipped the step of getting the name from local storage and passing it into the second block before generating the certificate.
It looks like you were also missing the variable in the certificate file to store the name.
Try this file and see if it resolves your issue. (The name file looked ok to me.)
Owen, thank you so much for taking the time to review my files and respond so quickly! Your revised file works perfectly, it has solved the issue! I greatly appreciate your help.
Hi Owen! I am attempting this project and I am having an issue retrieving the selected guides. In my retrieval scene I first had the slide executing JS at slide launch. Next, all guide images are set to hidden at slide launch. They each have a trigger to change to normal if their variable is true. Following your instructions I have local storage calling up all variables at slide launch. I did this in hopes that once variables were recalled, then the SL variables would display the conditional images based on the T/F boolean values. Sadly, no guide displayed. Is this because I created two different SL projects? Should this all pull from one project?
It should be 2 different projects. Can you share your .story files so I can take a look? It will probably have to wait until next week.
This post was removed by the author