在上一章节,讲述了对Hype制作的H5页面内部运作原理分析——关于项目的HTML文件的分析,了解到在HTML文件里并没有场景对象,也没有在场景中添加的矩形对象,只有一个Hype文档对象中包住的外部JS脚本文件。
接下来在本章节,将详细讲述对这个外部JS脚本文件的分析。本章由于涉及到JavaScript语言,对没有接触过JavaScript语言的小伙伴可能会有点困难。小编在讲解的时候尽量不涉及到语言语句,也不涉及到程序运行的逻辑,只介绍这段程序的运行结果。
在导出项目时创建的文件夹内找到这个“原理分析_hype_generated_script.js”的主脚本文件。打开文件,发现是一个被压缩过的JS脚本文件,需要把它转换为正常显示模式才能阅读分析(在Visual Studio Code软件使用shift + option + F 快捷键)。
一、自执行函数程序
JS脚本文件里的程序代码非常长,如果把中间内容收起来,发现这个程序的结构是这样的:一个自执行匿名函数包住一个函数名为m的自执行函数。
(function () {(function m () {…}) ()}) ()
所谓自执行函数,意思是当Hype文档对象调用这个JS脚本文件的时候,脚本文件里的函数会马上执行,运行花括号里面的程序代码。
二、JS脚本程序实现的几个功能
1、添加函数库脚本文件链接
在把Hype项目导出为HTML文档的时候,除了生成原理分析.html和原理分析_hype_generated-script.js主脚本文件外,还有HYPE-664-full.min.js和HYPE-664-thin.min.js两个脚本文件。
这两个脚本文件也是自执行匿名函数,其作用是建立JS关键字对应变量和CSS样式对应变量,实现在HTML文件中对象语句的编写。因此需要在HTML文件头部head里添加script链接。在本案例中,添加的是HYPE-664-thin.min.js函数库文件。
2、去除中文字符
在上一章分析HTML文件的时候,发现Hype文档对象div元素的id使用了中文“原理分析”。另外,文档对象里面的script元素的src地址出现了乱码,这也是中文字符。主脚本程序通过检索和对比把中文字符改为“index”。
3、创建场景对象和矩形对象并为其添加行内样式
完成了前面的设置后,在主脚本程序开始创建Hype文档对象里面的对象——包括场景对象和场景对象里面的矩形元素对象。可以看到在一些数组变量,包含了Hype软件中给矩形对象设置的样式值。
显然,在Hype场景中添加的元素,以及通过属性面板的选项给元素添加的样式值,都赋值给了一些变量。当浏览器加载HTML文件时,这些变量被主脚本程序获取,并在执行主脚本程序时,在HTML文件中生成HTML语言代码,最后在浏览器窗口显示出来。
三、小结
Hype软件中给场景添加的元素及其样式等,都是通过内部的JavaScript程序运作写到HTML文件中,然后在浏览器窗口呈现出来的。这个JavaScript程序是Hype软件的运作核心,有兴趣的小伙伴可以去研究一下它的源代码。