1. 爆炸效果
位于:BOS3D. Plugins. Blast, 爆炸效果类继承自火焰效果类,火焰效果类中的参数、方法都可以使用。以下的接口说明为爆炸效果独有的内容。
1.1. 实例化
初始化爆炸效果
名称 | 说明 | 类型 | 是否必须 | 示例 |
---|---|---|---|---|
opt | 爆照效果参数对象 | 对象 Object | 否 | {} |
opt.risingSpeed | 爆炸上升速度 | Float | 否 | 300.0 |
opt.firelifeAge | 火焰粒子生命周期 | Float | 否 | 6.0 |
opt.fireParticles | 火焰粒子数目 | Number | 否 | 300 |
opt.fireOpacityTween | 火焰粒子透明时间插值对象 | 对象 Object | 否 | { "times": [0.7, 2.5], "values": [0.8, 0.0] } |
opt.smokelifeAge | 烟雾粒子生命周期 | Float | 否 | 6.0 |
opt.smokeParticles | 烟雾粒子数目 | Number | 否 | 300 |
opt.smokeOpacityTween | 烟雾粒子透明时间插值对象 | 对象 Object | 否 | { "times": [0.7, 2.5], "values": [0.8, 0.0] } |
var blast = new BOS3D.Plugins.Blast(opt);
viewer3D.addExternalObject("blast", blast);
1.2. 属性
1.3. 方法
1.3.1. run
执行一次火焰爆炸效果
名称 | 说明 | 类型 | 是否必须 | 示例 |
---|---|---|---|---|
无 | null | null | null | null |
返回值说明 | 类型 | 示例 |
---|---|---|
无 | null | null |
调用方式:
/**
* 执行一次火焰爆炸效果
* @function run
* @return {void}
*/
var blast = new BOS3D.Plugins.Blast();
viewer3D.addExternalObject("blast", blast);
blast.run(4);
1.3.2. runLoop
执行多次或者循环执行爆炸效果
名称 | 说明 | 类型 | 是否必须 | 示例 |
---|---|---|---|---|
timerManager | 时间控制器 | 对象 Object | 是 | viewer3D.getTimerManager() |
interval | 循环间隔 | Number 毫秒 | 是 | 8000 |
times | 执行次数,0或者<0时,将循环执行 | Number | 是 | 8 |
返回值说明 | 类型 | 示例 |
---|---|---|
无 | null | null |
调用方式:
/**
* 执行一次火焰爆炸效果
* @function runLoop
* @return {void}
*/
var blast = new BOS3D.Plugins.Blast();
blast.setPosition({
x: 81154.5416313465,
y: 65333.943611312025,
z: 3600
});
viewer3D.addExternalObject("blast", blast);
blast.runLoop(viewer3D.getTimerManager(), 8000, 0);
1.3.3. stop
停止爆炸效果执行,将恢复到初始状态
名称 | 说明 | 类型 | 是否必须 | 示例 |
---|---|---|---|---|
无 | null | null | null | null |
返回值说明 | 类型 | 示例 |
---|---|---|
无 | null | null |
调用方式:
/**
* 停止爆炸效果执行,将恢复到初始状态
* @function stop
* @return {void}
*/
var blast = new BOS3D.Plugins.Blast();
blast.stop();
1.3.4. pause
暂停爆炸执行,保留爆炸当前效果状态
名称 | 说明 | 类型 | 是否必须 | 示例 |
---|---|---|---|---|
无 | null | null | null | null |
返回值说明 | 类型 | 示例 |
---|---|---|
无 | null | null |
调用方式:
/**
* 暂停爆炸执行,保留爆炸当前效果状态
* @function pause
* @return {void}
*/
var blast = new BOS3D.Plugins.Blast();
blast.pause();
1.3.5. continue
继续执行爆炸效果,恢复暂停的爆炸动画
名称 | 说明 | 类型 | 是否必须 | 示例 |
---|---|---|---|---|
无 | null | null | null | null |
返回值说明 | 类型 | 示例 |
---|---|---|
无 | null | null |
调用方式:
/**
* 继续执行爆炸效果,恢复暂停的爆炸动画
* @function pause
* @return {void}
*/
var blast = new BOS3D.Plugins.Blast();
blast.continue();
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<title>demo</title>
<style>
body {
margin: 0;
overflow: hidden;
position: fixed;
}
</style>
<link href="http://bos3d.bimwinner.com/static/UI/latest/BOS3DUI.min.css" rel="stylesheet">
</head>
<body>
<div id="viewport" class="viewport"></div>
<script>
const html = document.querySelector("html");
document.querySelector(".viewport").style.width = html.clientWidth + 'px';
document.querySelector(".viewport").style.height = html.clientHeight - 1 + 'px';
</script>
<script type="application/javascript" src="BOS3D.min.js"></script>
<script>
var option = {
host: "http://bos3d.bimwinner.com",
viewport: "viewport"
};
var viewer3D = new BOS3D.Viewer(option);
viewer3D.addView("M1598257565598", "he3285593fdc4ea3b91784c5741ff8aa");
viewer3D.registerModelEventListener(BOS3D.EVENTS.ON_LOAD_COMPLETE, function(event) {
var blast = new BOS3D.Plugins.Blast();
blast.setPosition({
x: 81154.5416313465,
y: 65333.943611312025,
z: 3600
});
viewer3D.addExternalObject((new Date()).getTime(), blast);
blast.runLoop(viewer3D.getTimerManager(), 8000, 0);
});
</script>
</body>
</html>