使用火星科技的mars3d的API,根据示例代码写的几个视频融合,点击不同网页标签会飞到不同的位置并开启那里的视频融合。
var video3D = new mars3d.graphic.Video3D({
// type: mars3d.graphic.Video3D.Type.Image,
// url: videoInfo.pic_url,
type: mars3d.graphic.Video3D.Type.Video,
dom: $("#trailer"),
position: videoInfo.position,
cameraPosition: videoInfo.cameraPosition,
style: videoInfo.style,
showFrustum: videoInfo.showFrustum,
});
gLayer.addGraphic(video3D);
map.setCameraView(videoInfo.view);
但经常会出现 gLayer.addGraphic(video3D);报错。第一次调用肯定能成功,然后第二次可能就会失败,失败一次后所有都失败了,也会阻止其他方法的调用,比如飞行。错误提示无法对:_0xc3d9ee添加addEventListener。
调试了一下才发现,第一次获取到了this这个DOM元素
第二次开始,就只是(忘截图了):
dom:{
selector:#trailer
}
所以,问题具体是什么原因还不太清楚,但肯定和jQuery有关。第二次开始不知道为啥没把DOM元素完整拿到再传进去。
反正不用jQuery反正是没事了:
var video3D = new mars3d.graphic.Video3D({
// type: mars3d.graphic.Video3D.Type.Image,
// url: videoInfo.pic_url,
type: mars3d.graphic.Video3D.Type.Video,
dom: document.getElementById("trailer"),
position: videoInfo.position,
cameraPosition: videoInfo.cameraPosition,
style: videoInfo.style,
showFrustum: videoInfo.showFrustum,
});
gLayer.addGraphic(video3D);
map.setCameraView(videoInfo.view);