前言

公司项目原因,接触到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. [20180608]Wrong Results with IOT, Added Column and Secondary Index.txt

    [20180608]Wrong Results with IOT, Added Column and Secondary Index.txt --//链接:http://db-oriented.com ...

  2. 总结Hibernate4.1+版本与Hibernate3.3+版本区别

    利用休假时间好好学习了当今流行的ORMapping框架-Hibernate,看完了马士兵老师经典的Hibernate视频教程,也算是小小入门了吧. 马老师在讲课中使用的Hibernate版本是3.3. ...

  3. Source Insight 查找的选择项

    查找参数:whole words only :                  全字匹配查找case sensitive  :                   区分大小写project wide ...

  4. ISP与DSP的区别【转】

    https://www.cnblogs.com/lifan3a/articles/5006760.html ISP 是Image Signal Processor 的简称,也就是图像信号处理器.而DS ...

  5. C++ Standards Support in GCC - GCC 对 C++ 标准的支持

    C++ Standards Support in GCC - 2019-2-20 GCC supports different dialects of C++, corresponding to th ...

  6. 免费ARP

    1. 免费ARP基本概念 免费ARP,也叫Gratutious ARP.无故ARP.这种ARP不同于一般的ARP请求,它的Sender IP和Target IP字段是相同的,相当于是请求自己的IP地址 ...

  7. git撤销本地提交但未push的记录

    ### git撤销本地提交但未push的记录 前言:有时候本地执行commit命令或者cherry-pick命令后发现提交了不需要提交的东西,就需要把已提交的commit记录撤销下来,简单做下记录 撤 ...

  8. java操作elasticsearch实现基本的增删改查操作

    一.在进行java操作elasticsearch之前,请确认好集群的名称及对应的ES节点ip和端口 1.查看ES的集群名称 #进入elasticsearch.yml配置文件/opt/elasticse ...

  9. 【18】如何把数据存储到MongoDB数据库

    如何把数据存储到MongoDB数据库 时间:2018.10.31                   edit by :北鼻 一.mongoDB环境安装 需要使用mongoDB数据库的话需要安装环境, ...

  10. postMessage 实现跨源通信 iframe 跨域获取url

    用postMessage实现跨源通信的方法实例 如:在www.bbb.com/index.html页面获取www.aaa.com/index.html的数据,以iframe的形式 www.aaa.co ...