cesium解决报错“Expected listener to be typeof function, actual typeof was undefined“

  • Post author:
  • Post category:其他



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



版权声明:本文为weixin_45782925原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。