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);
});