MMSDT.spread()
用于消防等应急演练及灾害模拟,模拟火势的蔓延。
构造函数
MMSDT.spread( parameters: object )
parameters - json格式,参数设置。
scale - 数字,火的大小。
speed - 数字,蔓延速度。
属性
.updata(array,callback)
更新路径,array-二维数组,火势蔓延的路径坐标点。
callback,回调函数,动画结束。
.remove()
删除。
.speed(value)
改变速度,value-数字
代码示例
var MMS3D_exceptionMesh = []; //需要材质拆分的网格
var MMS3D_instancingMesh = ["shu"]; //合并实例化网格
//初始化场景
MMSDT.initScene( false, MMS3D_exceptionMesh, MMS3D_instancingMesh );
//设置第3人称鼠标控制器
controls3.maxPolarAngle = Math.PI*0.49; //向下,最大角度限制
controls3.maxDistance = 500; //最远距离限制
controls3.screenSpacePanning = false; //右键平移是否上下移动
controls3.enableDamping = true; //是否开启惯性阻尼
controls3.dampingFactor = 0.1; //惯性阻尼系数
//使用json文件让场景还原
MMSDT.onloadScene( "models/mms3D_fdc1.json", function(progress){
if( progress == 'done' ){
//加载完成,播放风机动画
for( var i=0; i<actions[0].length; i++ ){
actions[0][i].play();
}
}else if( progress == 'ok' ){
//渲染完成
onloadDone();
}else{
//显示进度条数字
document.getElementById("loadNum").innerHTML = Math.round( progress )+'%';
}
});
//场景加载完成
function onloadDone(){
}
var options = {
scale: 1.5, //蔓延火焰的缩放大小
speed: 50, //火焰蔓延速度
}
var objSpread = new MMSDT.spread( options ); //初始化火焰
//自定义对外函数接口------------------------------------------------------------------------
//火势开始
MMAPI.startFire = function(num){
//路径
var points = [ [2,0.5,147],[30,0.5,165],[41,0.5,166],[56,0.5,160],[65,0.5,151],[78,0.5,146],[96,0.5,138],[124,0.5,155],[140,0.5,178],[160,0.5,208],[169,0.5,239],[158,0.5,259],[133,0.5,269],[97,0.5,274]
//按路径蔓延
objSpread.updata( points, function(){
//完成后回调
let divInfo = document.createElement("div");
divInfo.className = "infoBox";
divInfo.innerHTML = "火势动画<br>播放完成";
document.body.appendChild(divInfo);
//3秒后消失
setTimeout(function(){
divInfo.parentNode.removeChild(divInfo);
},3000)
});
}
//全部删除
MMAPI.delFire = function(){
objSpread.remove();
}
点击查看示例演示 →
Powered by mms3D