Cesium实战系列文章总目录
:
传送门
1.出现问题
在Cesium开发过程中,
添加事件监听
的过程中出现报错:name: ‘
DeveloperError'
, message: ‘
Expected listener to be typeof function, actual typeof was undefined'
,报错信息如下图:
2.解决方法
(1)查看报错信息
报错信息提示
listener
应该是一个函数,但代码中却不是。
然后查看了一下
js添加事件监听
函数的介绍,如下图。
(2)修改前代码
// 为每一帧添加监听事件
_viewer.clock.onTick.addEventListener(keyboardMapRoamingRender(_viewer));
修改前的代码是
keyboardMapRoamingRender(_viewer)
,是
keyboardMapRoamingRender
函数的
调用代码
,并不是
listenter
要求的
函数
。
但如果直接设置为
keyboardMapRoamingRender
函数,则
无法传参
,后续函数的功能无法实现。
(3)修改后代码
将
keyboardMapRoamingRender(_viewer)
放在
listener的监听函数内
,即可实现传参。
修改后
的事件监听函数代码如下:
// 为每一帧添加监听事件
_viewer.clock.onTick.addEventListener(function() {
keyboardMapRoamingRender(_viewer);
});