Storyline 360环境下jsPDF调用GetVar获取数字变量失效问题咨询
问题根因
jsPDF 1.5.3版本的doc.text()方法仅支持传入字符串类型的文本参数,你从Storyline中通过GetVar拿到的数字类型变量直接传入该方法时,会触发参数类型不匹配异常,而文本类型变量本身符合参数要求,因此运行正常。
解决方案
无需修改Storyline侧的变量类型,你可以正常对拿到的数字变量做数学运算,仅在调用doc.text()写入PDF时,将数值转换为字符串即可,同时满足数值运算和PDF生成的需求。
调整后可运行代码
// 读取Storyline播放器变量 var player = GetPlayer(); // 拿到的是数字类型,可直接做各类数学运算 userScore01 = player.GetVar("UserScore"); // 示例运算:userScore01 = userScore01 * 2 + 5; // 生成PDF var doc = new jsPDF(); doc.setFontType("bold"); doc.setFontSize(16); // 传入文本前将数字转为字符串即可 doc.text(20, 28, userScore01.toString()); // 保存PDF doc.save('Test.pdf');
你也可以根据个人编码习惯,替换为String(userScore01)或者userScore01 + ''的写法实现同样的转字符串效果。如果需要处理变量未赋值的异常场景,可以加兜底逻辑:(userScore01 || 0).toString(),避免变量为空时触发报错。
内容的提问来源于stack exchange,提问作者Daryl
相关产品推荐
相关产品推荐

