前言

公司项目原因,接触到storyline3(后面简称SL)课件制作工具,类似ppt,但是又多了互动、交互,且页面元素可添加触发器,触发器中可执行js代码。

1.官方教程

在SL中,会有“了解详情...”,点击后能到官方的使用教程,仔细阅读,会有你用到的知识。

(例如触发器的教程https://community.articulate.com/series/storyline-3/articles/storyline-3-working-with-triggers

触发器例子https://articulate.com/support/article/Articulate-Storyline-360-JavaScript-Best-Practices-and-Examples

2.如何从我们自己开发的平台跳转到课件

后台页面中,直接用window.open(url),打开课件。在url中,拼接了用户id、课程id,供业务判断使用。

3.在课件中如何接收url参数、SL参数存储、使用

这些在官方教程中没有明确的说明,是自己摸索、加群问人才总结出来的。但大知识点就是SL的触发器和简单的JS代码。

①添加触发器,这个在上面给出的链接中,可以学习怎么添加触发器。也不难,软件基本操作都能找到。不做赘述

②在触发器中添加的代码如下,最终都会出现在你导出的课件文件夹中的Storyline output\story_content\user.js里。

​ 代码如下

 console.log(window.location.href);
 //1.获取url问号后的参数
 function getQueryString(name) {
     var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
     var r = window.location.search.substr(1).match(reg);
     if (r != null)
         return unescape(r[2]);
     return null;
 }
 //2.获取url传的参数
 var fid = getQueryString("fid");
 var projectcoursepeoid = getQueryString("projectcoursepeoid");
 console.log("fid :"+fid );
 console.log("projectcoursepeoid :"+projectcoursepeoid );

 //3.将参数存在StoryLine的参数里
 var player = GetPlayer();
 player.SetVar("fid",fid);//传递变量
 player.SetVar("projectcoursepeoid",projectcoursepeoid);//传递变量

 //4.获取参数
 var fid_val = player.GetVar("fid");//获取变量
 var projectcoursepeoid_val = player.GetVar("projectcoursepeoid");//获取变量
 console.log("存值完毕 fid_val:"+fid_val);
 console.log("存值完毕 projectcoursepeoid_val:"+projectcoursepeoid_val);

4.将数据传回服务器

直接用window.location.href="请求的地址"+“?param1=”+param1...

类似方法http://www.rabbitoreg.com/2015/07/05/storyline-communication-with-a-web-server/

触发器js代码:

 //4.获取参数
 var player = GetPlayer();
 var fid_val = player.GetVar("fid");//获取变量
 var projectcoursepeoid_val = player.GetVar("projectcoursepeoid");//获取变量
 console.log("存值完毕 fid_val:"+fid_val);
 console.log("存值完毕 projectcoursepeoid_val:"+projectcoursepeoid_val);

 var requesturl = "http://localhost:8080/springMVC/peocourse/finishfile.action?fid="+fid_val+"&projectcoursepeoid="+projectcoursepeoid_val;
 window.location.href=requesturl;

StoryLine3变量存储与跳转后台时的使用的更多相关文章

  1. Slickflow.NET 开源工作流引擎高级开发(一) -- 流程外部事件的调用和变量存储实现

    前言:流程实现基本流转功能外,通常也需要调用外部事件,用于和业务系统的交互,同时存储一些流程变量,用于追踪和记录业务数据变化对流程流转的影响. 1. 流程事件 流程执行过程中,伴随各种事件的发生,而且 ...

  2. Java内存分配及变量存储位置实例讲解

    Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Java的内存管理与内存泄露以及Java垃圾回收方面的知识,今天我们再次深入Java核心,详细介绍一下Java在内存分配方面的知识.一般 ...

  3. java+内存分配及变量存储位置的区别[转]

    原文来自:http://blog.csdn.net/rj042/article/details/6871030#comments Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Jav ...

  4. 局部变量存储区域静态变量存储区域static变量存储区域

    局部变量存储区域静态变量存储区域static变量存储区域 常见的存储区域可分为: 1.栈 由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区.里面的变量通常是局部变量.函数参数等. 2.堆 ...

  5. java 中变量存储位置的区别

    1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.  2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字 ...

  6. python变量存储

    变量的存储 在高级语言中,变量是对内存及其地址的抽象. 对于python而言,python的一切变量都是对象,变量的存储,采用了引用语义的方式,存储的只是一个变量的值所在的内存地址,而不是这个变量的只 ...

  7. python 基础之变量存储缓存机制与数据驻留小数据池

    一:变量存储的缓存机制 在同一文件(模块)里,变量存储的缓存机制 (仅对python3.x版本负责),那么 --对于Number (int bool float complex) 1.对于整型而言,- ...

  8. python变量存储和深浅拷贝

    python的变量及其存储 在高级语言中,变量是对内存及其地址的抽象.对于python而言,python的一切变量都是对象,变量的存储,采用了引用语义的方式,存储的只是一个变量的值所在的内存地址,而不 ...

  9. C++变量存储类别和内存四区

    变量存储类别 变量声明/定义的一般形式: 存储类别 数据类型 变量名 存储类别指的是数据在内存中存储的方法.存储方法分为静态存储和动态存储两大类.标准C语言为变量.常量和函数定义了4种存储类型:ext ...

随机推荐

  1. 洗礼灵魂,修炼python(33)--面向对象编程(3)—特殊类方法__init__,公有属性,私有属性

    在上一篇博文里,传入参数时,是在实例化对象后且在调用方法时才传入参数,感觉是不是有点繁琐对吧?可以在实例化的时候就传入参数吗?可以的,这就是本篇博文的要讲到的构造器——__init__(两边双下划线) ...

  2. python第四十三天--第三模块考核

    面向对象: 概念:类,实例化,对象,实例 属性: 公有属性:在类中定义 成员属性:在方法中定义 私有属性:在方法中使用 __属性  定义 限制外部访问 方法: 普通方法 类方法: @classmeth ...

  3. Android中SELinux的TE简介【转】

    转自:https://blog.csdn.net/murphykwu/article/details/52457667 selinux的概念如上一篇链接所示: http://www.cnblogs.c ...

  4. 请问在EXECUTE IMMEDIATE中如何使用带有引号

    转自:http://bbs.csdn.net/topics/300191423 从第一引号向后,如果遇到第二个引号,则看这个引号后面时候有紧挨着的引号,如果有则第二个引号被转义,即该保留该引号后面紧跟 ...

  5. Sudoku 个人项目1

    Github项目地址:Github 项目相关要求 随机构造出N个不重复的已解答的数独棋盘(0 < N <= 1000000) 在生成数独矩阵时,左上角的第一个数为:(学号后两位相加)% 9 ...

  6. 点击事件click和onclick的区别

    一句话:$(selector).click()事件只能绑定静态元素.$(selector).on('click',function(){ })支持动态绑定元素. 如果是动态生成的元素,绑定事件只能用o ...

  7. 史上最全脉搏心率传感器PulseSensor资料(电路图+中文说明书+最全源代码)

    准确度说明: 1 输入引脚一定要接在模拟输入口上 ESP-D1  只有一个模拟输入口  A0  0-3.3V  心跳不要接在5v上,否则电压不准  ESP-D1开发板有一个5V和一个3.3v 普通ar ...

  8. pstart

    下面是我初步的排查过程: [1] [root@71 ~]# tcpdump host 192.168.0.71|grep "IP 115.*"|more tcpdump: verb ...

  9. socket实现聊天功能(二)

    socket实现聊天功能(二) WebSocket协议是建立在HTTP协议之上,因此创建websocket服务时需要调用http模块的createServer方法.将生成的server作为参数传入so ...

  10. 如何用css实现"等高布局"。

    有时候为了让网页实现美观,在不知道高度的情况下,我们要用css实现等高布局效果,传统的方法, 我们可以用javascript实现,但是由于需求决定或者其他的情况下,我们只能用css实现,其方法主要是采 ...