mx3d 2024.5.28 → 2024.6.2-8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -8
- package/docs/README.md +24 -0
- package/docs/_sidebar.md +29 -0
- package/docs/cabinet/24_back.jpg +0 -0
- package/docs/cabinet/24_font.jpg +0 -0
- package/docs/cabinet/43_back.jpg +0 -0
- package/docs/cabinet/43_font.jpg +0 -0
- package/docs/cabinet/cabinet.md +250 -0
- package/docs/camera.md +109 -0
- package/docs/css/dark.css +979 -0
- package/docs/css/local.google.fonts.css +295 -0
- package/docs/css/vue.css +1025 -0
- package/docs/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2 +0 -0
- package/docs/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2 +0 -0
- package/docs/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2 +0 -0
- package/docs/gui/2D.md +153 -0
- package/docs/gui/3D.md +154 -0
- package/docs/gui/bg.png +0 -0
- package/docs/heatMap/heatMap.md +290 -0
- package/docs/index.html +90 -0
- package/docs/js/bootstrap/bootstrap-theme.min.css +5 -0
- package/docs/js/bootstrap/bootstrap.min.css +5 -0
- package/docs/js/bootstrap/bootstrap.min.js +1 -0
- package/docs/js/bootstrap/jquery.min.js +1 -0
- package/docs/js/docsify@4.min.js +1 -0
- package/docs/js/search.min.js +1 -0
- package/docs/models/capacity.md +88 -0
- package/docs/models/effect.md +73 -0
- package/docs/models/event.md +100 -0
- package/docs/models/line.md +97 -0
- package/docs/models/model.md +164 -0
- package/docs/models/modelmgr.md +79 -0
- package/docs/project/projectmgr.md +64 -0
- package/docs/releases.md +128 -0
- package/docs/started/environment.md +103 -0
- package/docs/started/quickstart.md +112 -0
- package/index.d.ts +1109 -23
- package/mx3d.min.js +1 -1
- package/mx3d.seat.min.js +1 -1
- package/package.json +1 -1
- package/components/AlarmFlashing.d.ts +0 -12
- package/components/App.d.ts +0 -39
- package/components/Builder.d.ts +0 -73
- package/components/Capacity.d.ts +0 -11
- package/components/Environment.d.ts +0 -31
- package/components/HeatMap.d.ts +0 -14
- package/components/Icon.d.ts +0 -33
- package/components/IconFromMesh.d.ts +0 -29
- package/components/Line.d.ts +0 -14
- package/components/LineFromMesh.d.ts +0 -13
- package/components/StatusType.d.ts +0 -5
- package/components/UI.d.ts +0 -10
- package/earths/TileLoader.d.ts +0 -6
- package/effects/Cloud.d.ts +0 -42
- package/effects/Effect.d.ts +0 -13
- package/effects/IEffect.d.ts +0 -4
- package/effects/Rain.d.ts +0 -34
- package/effects/Thunder.d.ts +0 -31
- package/events/DefaultEvent.d.ts +0 -14
- package/events/EventType.d.ts +0 -9
- package/events/FPSCameraEvent.d.ts +0 -18
- package/events/IEvent.d.ts +0 -7
- package/hub/HubService.d.ts +0 -5
- package/lights/Directional.d.ts +0 -8
- package/lights/Hemispheric.d.ts +0 -7
- package/lights/ILightObject.d.ts +0 -11
- package/lights/LightObject.d.ts +0 -16
- package/lights/LightType.d.ts +0 -8
- package/lights/Point.d.ts +0 -8
- package/lights/Spot.d.ts +0 -11
- package/mapboxgl/BabylonLayer.d.ts +0 -0
- package/mapboxgl/Earth.d.ts +0 -0
- package/mapboxgl/Parse3dtile.d.ts +0 -0
- package/models/BaseModel.d.ts +0 -15
- package/models/BuildingObject.d.ts +0 -7
- package/models/CabinetObject.d.ts +0 -13
- package/models/CampusObject.d.ts +0 -8
- package/models/ConduitObject.d.ts +0 -17
- package/models/CornerObject.d.ts +0 -45
- package/models/DefaultObject.d.ts +0 -61
- package/models/DoorObject.d.ts +0 -7
- package/models/FloorObject.d.ts +0 -12
- package/models/IBase.d.ts +0 -23
- package/models/IObject.d.ts +0 -15
- package/models/IRegion.d.ts +0 -49
- package/models/LeakWaterObject.d.ts +0 -12
- package/models/ObjectType.d.ts +0 -17
- package/models/OptimizedWallObject.d.ts +0 -7
- package/models/Project.d.ts +0 -30
- package/models/RackModel.d.ts +0 -12
- package/models/RackObject.d.ts +0 -61
- package/models/StoreyObject.d.ts +0 -10
- package/models/UI3DTextObject.d.ts +0 -14
- package/models/VirtualBoxObject.d.ts +0 -13
- package/models/WallObject.d.ts +0 -12
- package/models/WindowObject.d.ts +0 -7
- package/mx3d.kernel.min.js +0 -1
- package/runtime/index.d.ts +0 -52
- package/tools/ArrayEx.d.ts +0 -3
- package/tools/BaseNode.d.ts +0 -5
- package/tools/CameraController.d.ts +0 -26
- package/tools/Dictionary.d.ts +0 -13
- package/tools/GUID.d.ts +0 -3
- package/tools/RES.d.ts +0 -3
- package/tools/Resources.d.ts +0 -26
- package/tools/Sight.d.ts +0 -15
- package/tools/ToolTips.d.ts +0 -14
- package/tools/Tools.d.ts +0 -21
- package/tools/axios.d.ts +0 -2
- /package/{earths/3dTile.d.ts → docs/.nojekyll} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
!function(){var e={},n="docsify.search.expires",t="docsify.search.index";function a(e){var n={"&":"&","<":"<",">":">",'"':""","'":"'"};return String(e).replace(/[&<>"']/g,(function(e){return n[e]}))}function i(e){return e.text||"table"!==e.type||(e.cells.unshift(e.header),e.text=e.cells.map((function(e){return e.join(" | ")})).join(" |\n ")),e.text}function r(e){return e.text||"list"!==e.type||(e.text=e.raw),e.text}function o(e,n,t,o){void 0===n&&(n="");n=window.marked.lexer(n);var s,c=window.Docsify.slugify,d={},l="";return n.forEach((function(n,p){if("heading"===n.type&&n.depth<=o){var h=function(e){void 0===e&&(e="");var n={};return{str:e=e&&e.replace(/^('|")/,"").replace(/('|")$/,"").replace(/(?:^|\s):([\w-]+:?)=?([\w-%]+)?/g,(function(e,t,a){return-1===t.indexOf(":")?(n[t]=a&&a.replace(/"/g,"")||!0,""):e})).trim(),config:n}}(n.text),f=h.str;h=h.config;s=h.id?t.toURL(e,{id:c(h.id)}):t.toURL(e,{id:c(a(n.text))}),f&&(l=f.replace(/<!-- {docsify-ignore} -->/,"").replace(/{docsify-ignore}/,"").replace(/<!-- {docsify-ignore-all} -->/,"").replace(/{docsify-ignore-all}/,"").trim()),d[s]={slug:s,title:l,body:""}}else{if(0===p&&(s=t.toURL(e),d[s]={slug:s,title:"/"!==e?e.slice(1):"Home Page",body:n.text||""}),!s)return;d[s]?d[s].body?(n.text=i(n),n.text=r(n),d[s].body+="\n"+(n.text||"")):(n.text=i(n),n.text=r(n),d[s].body=d[s].body?d[s].body+n.text:n.text):d[s]={slug:s,title:"",body:""}}})),c.clear(),d}function s(e){return e&&e.normalize?e.normalize("NFD").replace(/[\u0300-\u036f]/g,""):e}function c(a,i){var r,s,c,d,l="auto"===a.paths,p=l?(r=i.router,s=[],Docsify.dom.findAll(".sidebar-nav a:not(.section-link):not([data-nosearch])").forEach((function(e){var n=e.href;e=e.getAttribute("href");(n=r.parse(n).path)&&-1===s.indexOf(n)&&!Docsify.util.isAbsolutePath(e)&&s.push(n)})),s):a.paths,h="";p.length&&l&&a.pathNamespaces?(c=p[0],Array.isArray(a.pathNamespaces)?h=a.pathNamespaces.filter((function(e){return c.slice(0,e.length)===e}))[0]||h:a.pathNamespaces instanceof RegExp&&(f=c.match(a.pathNamespaces))&&(h=f[0]),d=-1===p.indexOf(h+"/"),f=-1===p.indexOf(h+"/README"),d&&f&&p.unshift(h+"/")):-1===p.indexOf("/")&&-1===p.indexOf("/README")&&p.unshift("/");var f,u=((f=a.namespace)?n+"/"+f:n)+h,m=((f=a.namespace)?t+"/"+f:t)+h;h=localStorage.getItem(u)<Date.now();if(e=JSON.parse(localStorage.getItem(m)),h)e={};else if(!l)return;var g=p.length,y=0;p.forEach((function(n){return e[n]?y++:void Docsify.get(i.router.getFile(n),!1,i.config.requestHeaders).then((function(t){var r,s;e[n]=o(n,t,i.router,a.depth),g===++y&&(r=a.maxAge,s=u,t=m,localStorage.setItem(s,Date.now()+r),localStorage.setItem(t,JSON.stringify(e)))}))}))}var d,l="";function p(n){var t=Docsify.dom.find("div.search"),i=Docsify.dom.find(t,".results-panel"),r=Docsify.dom.find(t,".clear-button"),o=Docsify.dom.find(".sidebar-nav");t=Docsify.dom.find(".app-name");if(!n)return i.classList.remove("show"),r.classList.remove("show"),i.innerHTML="",void(d.hideOtherSidebarContent&&(o&&o.classList.remove("hide"),t&&t.classList.remove("hide")));n=function(n){var t=[],i=[];Object.keys(e).forEach((function(n){i=i.concat(Object.keys(e[n]).map((function(t){return e[n][t]})))}));var r=(n=n.trim()).split(/[\s\-,\\/]+/);1!==r.length&&(r=[].concat(n,r));for(var o=0;o<i.length;o++)!function(e){e=i[e];var n=0,o="",c="",d="",l=e.title&&e.title.trim(),p=e.body&&e.body.trim();e=e.slug||"";l&&(r.forEach((function(e){var t,i=new RegExp(a(s(e)).replace(/[|\\{}()[\]^$+*?.]/g,"\\$&"),"gi"),r=-1,h=-1;c=l?a(s(l)):l,d=p?a(s(p)):p,r=l?c.search(i):-1,h=p?d.search(i):-1,(0<=r||0<=h)&&(n+=0<=r?3:0<=h?2:0,h<0&&(h=0),r=(r=0)==(t=h<11?0:h-10)?70:h+e.length+60,p&&r>p.length&&(r=p.length),i="..."+d.substring(t,r).replace(i,(function(e){return'<em class="search-keyword">'+e+"</em>"}))+"...",o+=i)})),0<n&&(e={title:c,content:p?o:"",url:e,score:n},t.push(e)))}(o);return t.sort((function(e,n){return n.score-e.score}))}(n);var c="";n.forEach((function(e){c+='<div class="matching-post">\n<a href="'+e.url+'">\n<h2>'+e.title+"</h2>\n<p>"+e.content+"</p>\n</a>\n</div>"})),i.classList.add("show"),r.classList.add("show"),i.innerHTML=c||'<p class="empty">'+l+"</p>",d.hideOtherSidebarContent&&(o&&o.classList.add("hide"),t&&t.classList.add("hide"))}function h(e){d=e}var f={placeholder:"Type to search",noData:"No Results!",paths:"auto",depth:2,maxAge:864e5,hideOtherSidebarContent:!1,namespace:void 0,pathNamespaces:void 0};$docsify.plugins=[].concat((function(e,n){var t=Docsify.util,a=n.config.search||f;Array.isArray(a)?f.paths=a:"object"==typeof a&&(f.paths=Array.isArray(a.paths)?a.paths:"auto",f.maxAge=(t.isPrimitive(a.maxAge)?a:f).maxAge,f.placeholder=a.placeholder||f.placeholder,f.noData=a.noData||f.noData,f.depth=a.depth||f.depth,f.hideOtherSidebarContent=a.hideOtherSidebarContent||f.hideOtherSidebarContent,f.namespace=a.namespace||f.namespace,f.pathNamespaces=a.pathNamespaces||f.pathNamespaces);var i="auto"===f.paths;e.mounted((function(e){(function(e,n){var t,a,i=n.router.parse().query.s;h(e),Docsify.dom.style("\n.sidebar {\n padding-top: 0;\n}\n\n.search {\n margin-bottom: 20px;\n padding: 6px;\n border-bottom: 1px solid #eee;\n}\n\n.search .input-wrap {\n display: flex;\n align-items: center;\n}\n\n.search .results-panel {\n display: none;\n}\n\n.search .results-panel.show {\n display: block;\n}\n\n.search input {\n outline: none;\n border: none;\n width: 100%;\n padding: 0 7px;\n line-height: 36px;\n font-size: 14px;\n border: 1px solid transparent;\n}\n\n.search input:focus {\n box-shadow: 0 0 5px var(--theme-color, #42b983);\n border: 1px solid var(--theme-color, #42b983);\n}\n\n.search input::-webkit-search-decoration,\n.search input::-webkit-search-cancel-button,\n.search input {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n.search .clear-button {\n cursor: pointer;\n width: 36px;\n text-align: right;\n display: none;\n}\n\n.search .clear-button.show {\n display: block;\n}\n\n.search .clear-button svg {\n transform: scale(.5);\n}\n\n.search h2 {\n font-size: 17px;\n margin: 10px 0;\n}\n\n.search a {\n text-decoration: none;\n color: inherit;\n}\n\n.search .matching-post {\n border-bottom: 1px solid #eee;\n}\n\n.search .matching-post:last-child {\n border-bottom: 0;\n}\n\n.search p {\n font-size: 14px;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n.search p.empty {\n text-align: center;\n}\n\n.app-name.hide, .sidebar-nav.hide {\n display: none;\n}"),function(e){void 0===e&&(e="");var n='<div class="input-wrap">\n <input type="search" value="'+e+'" aria-label="Search text" />\n <div class="clear-button">\n <svg width="26" height="24">\n <circle cx="12" cy="12" r="11" fill="#ccc" />\n <path stroke="white" stroke-width="2" d="M8.25,8.25,15.75,15.75" />\n <path stroke="white" stroke-width="2"d="M8.25,15.75,15.75,8.25" />\n </svg>\n </div>\n </div>\n <div class="results-panel"></div>\n </div>';e=Docsify.dom.create("div",n),n=Docsify.dom.find("aside"),Docsify.dom.toggleClass(e,"search"),Docsify.dom.before(n,e)}(i),n=Docsify.dom.find("div.search"),a=Docsify.dom.find(n,"input"),e=Docsify.dom.find(n,".input-wrap"),Docsify.dom.on(n,"click",(function(e){return-1===["A","H2","P","EM"].indexOf(e.target.tagName)&&e.stopPropagation()})),Docsify.dom.on(a,"input",(function(e){clearTimeout(t),t=setTimeout((function(n){return p(e.target.value.trim())}),100)})),Docsify.dom.on(e,"click",(function(e){"INPUT"!==e.target.tagName&&(a.value="",p())})),i&&setTimeout((function(e){return p(i)}),500)})(f,n),i||c(f,n)})),e.doneEach((function(e){(function(e,n){var t,a,i,r,o;h(e),t=e.placeholder,a=n.route.path,(r=Docsify.dom.getNode('.search input[type="search"]'))&&("string"==typeof t?r.placeholder=t:(i=Object.keys(t).filter((function(e){return-1<a.indexOf(e)}))[0],r.placeholder=t[i])),e=e.noData,o=n.route.path,l="string"==typeof e?e:e[Object.keys(e).filter((function(e){return-1<o.indexOf(e)}))[0]]})(f,n),i&&c(f,n)}))}),$docsify.plugins)}();
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
## 创建容量效果
|
|
2
|
+
|
|
3
|
+
```javascript
|
|
4
|
+
/// <summary>
|
|
5
|
+
/// 创建容量效果
|
|
6
|
+
/// </summary>
|
|
7
|
+
/// <param name="anchor">挂载的物体(非空)</param>
|
|
8
|
+
/// <param name="RATIO">容量占比;0-1(非空)></param>
|
|
9
|
+
/// <param name="_text">显示的文字(可空)</param>
|
|
10
|
+
/// <param name="_fontSize">字体的大小(可空),默认200px</param>
|
|
11
|
+
var map= MX3D.Builder.createCapacity(obj: IObject, RATIO: number, _text: string, _fontSize: string = "200px")
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## 示例
|
|
15
|
+
|
|
16
|
+
### 代码
|
|
17
|
+
|
|
18
|
+
```javascript
|
|
19
|
+
//创建的容量
|
|
20
|
+
var maps=[];
|
|
21
|
+
//创建
|
|
22
|
+
//获取当前界面机柜
|
|
23
|
+
var _objs = app.project.findObjectsByCustomType('Cabinet',{ isCurrent: false, isEnabled: true });
|
|
24
|
+
for (let i = 0; i < _objs.length; i++) {
|
|
25
|
+
//将机柜设为透明
|
|
26
|
+
_objs[i].setTransparent();
|
|
27
|
+
let value=Math.random();
|
|
28
|
+
//创建容量效果
|
|
29
|
+
let map = MX3D.Builder.createCapacity(_objs[i],value,(value*100).toFixed(1)+"%","100px");
|
|
30
|
+
maps.push(map);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
//销毁
|
|
34
|
+
for (let i = 0; i < maps.length; i++) {
|
|
35
|
+
maps[i].dispose();
|
|
36
|
+
maps[i].anchor.setOpaque();
|
|
37
|
+
}
|
|
38
|
+
maps=[];
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
<div id="container" style="width: 100%;height: 500px;position: relative;">
|
|
42
|
+
<div style="position: absolute;top: 20px;left: 20px;width: 120px;z-index: 5;" class="btn-group-vertical" role="group">
|
|
43
|
+
<button type="button" id="but_createMatrixHeatMap" class="btn btn-default">创建</button>
|
|
44
|
+
<button type="button" id="but_detele" class="btn btn-default">销毁</button>
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
<script>
|
|
49
|
+
MX3D.accessToken = "0498A36E67B5ED17E7A7B23D0AC4ACB2E1D6DE1209A0C0894BA0B6973C606201DDCEF2EACFE268AB31FBE04616680A3F453EA85544AE248BA2B115141E029B13C3C90718BA0F15AE6A78BA9F3D70C41650FA4EDDC64D1DEFE5CBA2767EC3A52B347393871ACAC3FF01DF62EAF2F0AEB93578E90EB1F3B7B0793949E88BB4AF1EBB9AA0B0635B93738EC96287638F8716DD6FAC6087C8C8BE4F674F3853042BC60E391D9F5D54";
|
|
50
|
+
app = new MX3D.App({
|
|
51
|
+
container: document.getElementById("container")
|
|
52
|
+
});
|
|
53
|
+
app.load({
|
|
54
|
+
pk: "9a0b0f36-f283-49b5-b964-9a3bc630abda",
|
|
55
|
+
progress: (_x) => { //加载进度
|
|
56
|
+
console.log(_x)
|
|
57
|
+
},
|
|
58
|
+
complete:()=>{ ///加载完成
|
|
59
|
+
console.log("加载完成");
|
|
60
|
+
// console.log(app.project.getSceneTree());
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
var maps=[];
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
$("#but_createMatrixHeatMap").click(function(){
|
|
69
|
+
|
|
70
|
+
var _objs = app.project.findObjectsByCustomType('Cabinet',{ isCurrent: false, isEnabled: true });
|
|
71
|
+
for (let i = 0; i < _objs.length; i++) {
|
|
72
|
+
_objs[i].setTransparent();
|
|
73
|
+
//_objs[i].setEnabled(false);
|
|
74
|
+
let value=Math.random();
|
|
75
|
+
let map = MX3D.Builder.createCapacity(_objs[i],value,(value*100).toFixed(1)+"%","100px");
|
|
76
|
+
maps.push(map);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
$("#but_detele").click(function(){
|
|
82
|
+
for (let i = 0; i < maps.length; i++) {
|
|
83
|
+
maps[i].dispose();
|
|
84
|
+
maps[i].anchor.setOpaque();
|
|
85
|
+
}
|
|
86
|
+
maps=[];
|
|
87
|
+
});
|
|
88
|
+
</script>
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
## 添加特效
|
|
2
|
+
|
|
3
|
+
```javascript
|
|
4
|
+
/// <summary>
|
|
5
|
+
/// 添加特效
|
|
6
|
+
/// </summary>
|
|
7
|
+
/// <param name="Thunder">特效枚举</param>
|
|
8
|
+
/// <param name="_objs">3D实例</param>
|
|
9
|
+
MX3D.Effect.add('Thunder', app)
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## 去除特效
|
|
13
|
+
|
|
14
|
+
```javascript
|
|
15
|
+
/// <summary>
|
|
16
|
+
/// 去除特效
|
|
17
|
+
/// </summary>
|
|
18
|
+
/// <param name="Thunder">特效枚举</param>
|
|
19
|
+
MX3D.Effect.remove('Thunder')
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## 现支持的特效
|
|
23
|
+
|
|
24
|
+
```javascript
|
|
25
|
+
//雷电
|
|
26
|
+
'Thunder'
|
|
27
|
+
//下雨
|
|
28
|
+
'Rain'
|
|
29
|
+
//乌云
|
|
30
|
+
'Cloud'
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## 示例
|
|
34
|
+
|
|
35
|
+
<div id="container" style="width: 100%;height: 500px;position: relative;">
|
|
36
|
+
<div style="position: absolute;top: 20px;left: 20px;width: 120px;z-index: 5;" class="btn-group-vertical" role="group">
|
|
37
|
+
<button type="button" id="Thunder" class="btn btn-default">雷电</button>
|
|
38
|
+
<button type="button" id="Rain" class="btn btn-default">下雨</button>
|
|
39
|
+
<button type="button" id="Cloud" class="btn btn-default">乌云</button>
|
|
40
|
+
<button type="button" id="close" class="btn btn-default">清除</button>
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
|
|
44
|
+
<script>
|
|
45
|
+
MX3D.accessToken = "0498A36E67B5ED17E7A7B23D0AC4ACB2E1D6DE1209A0C0894BA0B6973C606201DDCEF2EACFE268AB31FBE04616680A3F453EA85544AE248BA2B115141E029B13C3C90718BA0F15AE6A78BA9F3D70C41650FA4EDDC64D1DEFE5CBA2767EC3A52B347393871ACAC3FF01DF62EAF2F0AEB93578E90EB1F3B7B0793949E88BB4AF1EBB9AA0B0635B93738EC96287638F8716DD6FAC6087C8C8BE4F674F3853042BC60E391D9F5D54";
|
|
46
|
+
app = new MX3D.App({
|
|
47
|
+
container: document.getElementById("container")
|
|
48
|
+
});
|
|
49
|
+
app.load({
|
|
50
|
+
pk: "9a0b0f36-f283-49b5-b964-9a3bc630abda",
|
|
51
|
+
progress: (_x) => { //加载进度
|
|
52
|
+
console.log(_x)
|
|
53
|
+
},
|
|
54
|
+
complete:()=>{ ///加载完成
|
|
55
|
+
console.log("加载完成");
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
$("#Thunder").click(function(){
|
|
60
|
+
MX3D.Effect.add('Thunder', app);
|
|
61
|
+
});
|
|
62
|
+
$("#Rain").click(function(){
|
|
63
|
+
MX3D.Effect.add('Rain', app);
|
|
64
|
+
});
|
|
65
|
+
$("#Cloud").click(function(){
|
|
66
|
+
MX3D.Effect.add('Cloud', app);
|
|
67
|
+
});
|
|
68
|
+
$("#close").click(function(){
|
|
69
|
+
MX3D.Effect.remove('Thunder')
|
|
70
|
+
MX3D.Effect.remove('Cloud')
|
|
71
|
+
MX3D.Effect.remove('Rain')
|
|
72
|
+
});
|
|
73
|
+
</script>
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
## 注册事件
|
|
2
|
+
|
|
3
|
+
```javascript
|
|
4
|
+
/// <summary>
|
|
5
|
+
/// 添加对象事件
|
|
6
|
+
/// </summary>
|
|
7
|
+
/// <param name="MX3D.EventType">事件类型,查看事件类型选项</param>
|
|
8
|
+
/// <param name="function">事件回调</param>
|
|
9
|
+
obj.addEventListener(MX3D.EventType, function);
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## 事件类型
|
|
13
|
+
|
|
14
|
+
```javascript
|
|
15
|
+
/// <summary>
|
|
16
|
+
/// 左键单击
|
|
17
|
+
/// </summary>
|
|
18
|
+
leftClick
|
|
19
|
+
/// <summary>
|
|
20
|
+
/// 右键单击
|
|
21
|
+
/// </summary>
|
|
22
|
+
rightClick
|
|
23
|
+
/// <summary>
|
|
24
|
+
/// 双击
|
|
25
|
+
/// </summary>
|
|
26
|
+
doubleClick
|
|
27
|
+
/// <summary>
|
|
28
|
+
/// 移入
|
|
29
|
+
/// </summary>
|
|
30
|
+
eover
|
|
31
|
+
/// <summary>
|
|
32
|
+
/// 长按
|
|
33
|
+
/// </summary>
|
|
34
|
+
longPress
|
|
35
|
+
/// <summary>
|
|
36
|
+
/// 移出
|
|
37
|
+
/// </summary>
|
|
38
|
+
out = 'out'
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 事件实例
|
|
42
|
+
|
|
43
|
+
当用户左键点击某个对象时浏览器控制台输出此对象:
|
|
44
|
+
|
|
45
|
+
```javascript
|
|
46
|
+
var obj = app.project.findObjectById('O8z6oQcz6SV3') //获取指定编号对象
|
|
47
|
+
obj.addEventListener(MX3D.EventType.leftClick, function (e) {
|
|
48
|
+
console.log(e)
|
|
49
|
+
})
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## 事件删除
|
|
53
|
+
|
|
54
|
+
```javascript
|
|
55
|
+
obj.removeEventListener(MX3D.EventType.leftClick)
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## 示例
|
|
59
|
+
|
|
60
|
+
<div id="container" style="width: 100%;height: 500px;position: relative;">
|
|
61
|
+
<div style="position: absolute;top: 20px;left: 20px;width: 120px;z-index: 5;" class="btn-group-vertical" role="group">
|
|
62
|
+
<button type="button" id="but_setFlash" class="btn btn-default">事件监听</button>
|
|
63
|
+
<button type="button" id="but_setTransparent" class="btn btn-default">事件取消</button>
|
|
64
|
+
</div>
|
|
65
|
+
</div>
|
|
66
|
+
|
|
67
|
+
<script>
|
|
68
|
+
MX3D.accessToken = "0498A36E67B5ED17E7A7B23D0AC4ACB2E1D6DE1209A0C0894BA0B6973C606201DDCEF2EACFE268AB31FBE04616680A3F453EA85544AE248BA2B115141E029B13C3C90718BA0F15AE6A78BA9F3D70C41650FA4EDDC64D1DEFE5CBA2767EC3A52B347393871ACAC3FF01DF62EAF2F0AEB93578E90EB1F3B7B0793949E88BB4AF1EBB9AA0B0635B93738EC96287638F8716DD6FAC6087C8C8BE4F674F3853042BC60E391D9F5D54";
|
|
69
|
+
app = new MX3D.App({
|
|
70
|
+
container: document.getElementById("container")
|
|
71
|
+
});
|
|
72
|
+
app.load({
|
|
73
|
+
pk: "9a0b0f36-f283-49b5-b964-9a3bc630abda",
|
|
74
|
+
progress: (_x) => { //加载进度
|
|
75
|
+
console.log(_x)
|
|
76
|
+
},
|
|
77
|
+
complete:()=>{ ///加载完成
|
|
78
|
+
console.log("加载完成");
|
|
79
|
+
// console.log(app.Project.getSceneTree());
|
|
80
|
+
// console.log(parseInt(new Date().getTime() - _t) / 1000);
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
$("#but_setFlash").click(function(){
|
|
85
|
+
var _objs = app.project.findObjectsByCustomType("Cabinet");
|
|
86
|
+
for (let i = 0; i < _objs.length; i++) {
|
|
87
|
+
_objs[i].addEventListener(MX3D.EventType.leftClick, function (e) {
|
|
88
|
+
console.log(e);
|
|
89
|
+
alert("你点击了机柜:"+e.customNumber)
|
|
90
|
+
})
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
$("#but_setTransparent").click(function(){
|
|
95
|
+
var _objs = app.project.findObjectsByCustomType("Cabinet");
|
|
96
|
+
for (let i = 0; i < _objs.length; i++) {
|
|
97
|
+
_objs[i].removeEventListener(MX3D.EventType.leftClick)
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
</script>
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
## 2d 连线
|
|
2
|
+
|
|
3
|
+
```javascript
|
|
4
|
+
/// <summary>
|
|
5
|
+
/// 创建2d连线效果
|
|
6
|
+
/// </summary>
|
|
7
|
+
/// <param name="_id">线编号自定义(非空)</param>
|
|
8
|
+
/// <param name="_objs">需要相连的对象数组(非空,且大于2)></param>
|
|
9
|
+
/// <param name="_options">线的样式配置(可空)
|
|
10
|
+
////// <param name="width">宽度</param>
|
|
11
|
+
////// <param name="color">颜色</param>
|
|
12
|
+
////// <param name="isDotted">是否是虚线</param>
|
|
13
|
+
/// </param>
|
|
14
|
+
var line = MX3D.Builder.create2DLine(_id: string, _objs: Array<IObject>, _options?: { width: number, color: string, isDotted: boolean });
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## 3d 连线
|
|
18
|
+
|
|
19
|
+
```javascript
|
|
20
|
+
/// <summary>
|
|
21
|
+
/// 创建3d连线效果
|
|
22
|
+
/// </summary>
|
|
23
|
+
/// <param name="_id">线编号自定义(非空)</param>
|
|
24
|
+
/// <param name="_objs">需要相连的对象数组(非空,且大于2)></param>
|
|
25
|
+
/// <param name="_options">线的样式配置(可空)
|
|
26
|
+
////// <param name="width">宽度</param>
|
|
27
|
+
////// <param name="color">颜色</param>
|
|
28
|
+
/// </param>
|
|
29
|
+
var line = MX3D.Builder.create2DLine(_id: string, _objs: Array<IObject>, _options?: { width: number, color: string });
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## 线属性
|
|
33
|
+
|
|
34
|
+
## 点击事件
|
|
35
|
+
|
|
36
|
+
```javascript
|
|
37
|
+
/// <param name="_action">回调方法</param>
|
|
38
|
+
line.addEventListener(_action: Function)
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## 示例
|
|
42
|
+
|
|
43
|
+
### 代码
|
|
44
|
+
|
|
45
|
+
```javascript
|
|
46
|
+
/// 线实例
|
|
47
|
+
var line;
|
|
48
|
+
///创建2d连线
|
|
49
|
+
var _objs = app.project.findObjectsByCustomType('Humiture', { isCurrent: false, isEnabled: true,});
|
|
50
|
+
line = MX3D.Builder.create2DLine('line_5498797', _objs);
|
|
51
|
+
line.update();
|
|
52
|
+
///创建3d连线
|
|
53
|
+
var _objs = app.project.findObjectsByCustomType('Humiture', { isCurrent: false, isEnabled: true,});
|
|
54
|
+
line = MX3D.Builder.create3DLine('line_5498797', _objs);
|
|
55
|
+
line.update();
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### 效果
|
|
60
|
+
|
|
61
|
+
<div id="container" style="width: 100%;height: 500px;position: relative;">
|
|
62
|
+
<div style="position: absolute;top: 20px;left: 20px;width: 120px;z-index: 5;" class="btn-group-vertical" role="group">
|
|
63
|
+
<button type="button" id="but_2d" class="btn btn-default">2d连线</button>
|
|
64
|
+
<button type="button" id="but_3d" class="btn btn-default">3d连线</button>
|
|
65
|
+
</div>
|
|
66
|
+
</div>
|
|
67
|
+
|
|
68
|
+
<script>
|
|
69
|
+
MX3D.accessToken = "0498A36E67B5ED17E7A7B23D0AC4ACB2E1D6DE1209A0C0894BA0B6973C606201DDCEF2EACFE268AB31FBE04616680A3F453EA85544AE248BA2B115141E029B13C3C90718BA0F15AE6A78BA9F3D70C41650FA4EDDC64D1DEFE5CBA2767EC3A52B347393871ACAC3FF01DF62EAF2F0AEB93578E90EB1F3B7B0793949E88BB4AF1EBB9AA0B0635B93738EC96287638F8716DD6FAC6087C8C8BE4F674F3853042BC60E391D9F5D54";
|
|
70
|
+
app = new MX3D.App({
|
|
71
|
+
container: document.getElementById("container")
|
|
72
|
+
});
|
|
73
|
+
app.load({
|
|
74
|
+
pk: "9a0b0f36-f283-49b5-b964-9a3bc630abda",
|
|
75
|
+
progress: (_x) => { //加载进度
|
|
76
|
+
console.log(_x)
|
|
77
|
+
},
|
|
78
|
+
complete:()=>{ ///加载完成
|
|
79
|
+
console.log("加载完成");
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
var uis;
|
|
84
|
+
|
|
85
|
+
$("#but_2d").click(function(){
|
|
86
|
+
if(uis)uis.dispose();
|
|
87
|
+
var _objs = app.project.findObjectsByCustomType('Humiture',{ isCurrent: false, isEnabled: true });
|
|
88
|
+
uis = MX3D.Builder.create2DLine("line_5498797", _objs);
|
|
89
|
+
uis.update();
|
|
90
|
+
});
|
|
91
|
+
$("#but_3d").click(function(){
|
|
92
|
+
if(uis)uis.dispose();
|
|
93
|
+
var _objs = app.project.findObjectsByCustomType('Humiture',{ isCurrent: false, isEnabled: true });
|
|
94
|
+
uis = MX3D.Builder.create3DLine("line_5498797", _objs);
|
|
95
|
+
uis.update();
|
|
96
|
+
});
|
|
97
|
+
</script>
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
## 属性
|
|
2
|
+
|
|
3
|
+
```javascript
|
|
4
|
+
id: string //编号
|
|
5
|
+
name: string //名称
|
|
6
|
+
parentId: string //父编号
|
|
7
|
+
objectType: string //模型类型
|
|
8
|
+
customNumber: string //自定义编号
|
|
9
|
+
customType: string //自定义类型
|
|
10
|
+
modelId: string //模型资源编号
|
|
11
|
+
Sight: Sight //视角
|
|
12
|
+
effectType: EffectType //设备状态
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
### 视角 Sight
|
|
16
|
+
|
|
17
|
+
#### 视角属性
|
|
18
|
+
|
|
19
|
+
```javascript
|
|
20
|
+
alpha: number //视角方向;弧度0-3.14
|
|
21
|
+
focus: Vector3 //聚焦点
|
|
22
|
+
radius: number //距离聚焦点的半径
|
|
23
|
+
beta: number //视角高度;弧度0-3.14
|
|
24
|
+
minimumLimit: number //距离聚焦点最近半径
|
|
25
|
+
maximumLimit: number //距离聚焦点最远半径
|
|
26
|
+
minBeta: number //最小视角高度限制;弧度0-3.14
|
|
27
|
+
maxBeta: number //最高视角限制;弧度0-3.14
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
#### 视角方法
|
|
31
|
+
|
|
32
|
+
```javascript
|
|
33
|
+
//视角转成字符串形式
|
|
34
|
+
let _sightJson = obj.Sight.toString();
|
|
35
|
+
//视角json字符串转json
|
|
36
|
+
obj.Sight.toJosn(_sightJson);
|
|
37
|
+
//设置缩放范围
|
|
38
|
+
obj.Sight.setLimit(_miniLimit: number, _maxiLimit: number) {}
|
|
39
|
+
//设置上下视角限制
|
|
40
|
+
obj.Sight.setBeta(_minBeta: number, _maxBeta: number) {}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## 方法
|
|
44
|
+
|
|
45
|
+
### 设置闪烁
|
|
46
|
+
|
|
47
|
+
```javascript
|
|
48
|
+
/// <summary>
|
|
49
|
+
/// 设置对象闪烁
|
|
50
|
+
/// </summary>
|
|
51
|
+
/// <param name="level">闪烁等级;1-5</param>
|
|
52
|
+
obj.setFlash(level: number)
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 设置透明
|
|
56
|
+
|
|
57
|
+
```javascript
|
|
58
|
+
/// <summary>
|
|
59
|
+
/// 设置透明
|
|
60
|
+
/// </summary>
|
|
61
|
+
obj.setTransparent()
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### 设置正常
|
|
65
|
+
|
|
66
|
+
```javascript
|
|
67
|
+
/// <summary>
|
|
68
|
+
/// 设置正常
|
|
69
|
+
/// </summary>
|
|
70
|
+
obj.setOpaque()
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### 显示隐藏
|
|
74
|
+
|
|
75
|
+
```javascript
|
|
76
|
+
/// <summary>
|
|
77
|
+
/// 显示隐藏
|
|
78
|
+
/// </summary>
|
|
79
|
+
obj.setEnabled(isEnabled)
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### 设置颜色
|
|
83
|
+
|
|
84
|
+
```javascript
|
|
85
|
+
/// <summary>
|
|
86
|
+
/// 设置颜色
|
|
87
|
+
/// </summary>
|
|
88
|
+
/// <param name="_color">带透明通道的16进制颜色字符串;可为空、为空则清除颜色设置</param>
|
|
89
|
+
obj.setColor(_color: string="#ffffff")
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### 播放动画
|
|
93
|
+
|
|
94
|
+
```javascript
|
|
95
|
+
/// <summary>
|
|
96
|
+
/// 播放动画
|
|
97
|
+
/// </summary>
|
|
98
|
+
obj.play()
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### 关闭动画
|
|
102
|
+
|
|
103
|
+
```javascript
|
|
104
|
+
/// <summary>
|
|
105
|
+
/// 关闭动画
|
|
106
|
+
/// </summary>
|
|
107
|
+
obj.stop()
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## 示例
|
|
111
|
+
|
|
112
|
+
<div id="container" style="width: 100%;height: 500px;position: relative;">
|
|
113
|
+
<div style="position: absolute;top: 20px;left: 20px;width: 120px;z-index: 5;" class="btn-group-vertical" role="group">
|
|
114
|
+
<button type="button" id="but_setFlash" class="btn btn-default">告警闪烁</button>
|
|
115
|
+
<button type="button" id="but_setTransparent" class="btn btn-default">透明</button>
|
|
116
|
+
<button type="button" id="but_setOpaque" class="btn btn-default">正常</button>
|
|
117
|
+
<button type="button" id="but_hide" class="btn btn-default">隐藏</button>
|
|
118
|
+
<button type="button" id="but_show" class="btn btn-default">显示</button>
|
|
119
|
+
</div>
|
|
120
|
+
</div>
|
|
121
|
+
|
|
122
|
+
<script>
|
|
123
|
+
MX3D.accessToken = "0498A36E67B5ED17E7A7B23D0AC4ACB2E1D6DE1209A0C0894BA0B6973C606201DDCEF2EACFE268AB31FBE04616680A3F453EA85544AE248BA2B115141E029B13C3C90718BA0F15AE6A78BA9F3D70C41650FA4EDDC64D1DEFE5CBA2767EC3A52B347393871ACAC3FF01DF62EAF2F0AEB93578E90EB1F3B7B0793949E88BB4AF1EBB9AA0B0635B93738EC96287638F8716DD6FAC6087C8C8BE4F674F3853042BC60E391D9F5D54";
|
|
124
|
+
app = new MX3D.App({
|
|
125
|
+
container: document.getElementById("container")
|
|
126
|
+
});
|
|
127
|
+
app.load({
|
|
128
|
+
pk: "9a0b0f36-f283-49b5-b964-9a3bc630abda",
|
|
129
|
+
// isDefaultLevel:false,
|
|
130
|
+
progress: (_x) => { //加载进度
|
|
131
|
+
console.log(_x)
|
|
132
|
+
},
|
|
133
|
+
complete:()=>{ ///加载完成
|
|
134
|
+
console.log("加载完成");
|
|
135
|
+
// console.log(app.Project.getSceneTree());
|
|
136
|
+
// console.log(parseInt(new Date().getTime() - _t) / 1000);
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
$("#but_setFlash").click(function(){
|
|
141
|
+
var obj = app.project.findObjectById("qLokZixaMv5K");
|
|
142
|
+
obj.setFlash(1);
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
$("#but_setTransparent").click(function(){
|
|
146
|
+
var obj = app.project.findObjectById("qLokZixaMv5K");
|
|
147
|
+
obj.setTransparent();
|
|
148
|
+
//app.Environment.showDebug();
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
$("#but_setOpaque").click(function(){
|
|
152
|
+
var obj = app.project.findObjectById("qLokZixaMv5K");
|
|
153
|
+
obj.setOpaque();
|
|
154
|
+
});
|
|
155
|
+
|
|
156
|
+
$("#but_hide").click(function(){
|
|
157
|
+
var obj=app.project.findObjectById("qLokZixaMv5K")
|
|
158
|
+
obj.setEnabled(false);
|
|
159
|
+
});
|
|
160
|
+
$("#but_show").click(function(){
|
|
161
|
+
var obj=app.project.findObjectById("qLokZixaMv5K")
|
|
162
|
+
obj.setEnabled(true);
|
|
163
|
+
});
|
|
164
|
+
</script>
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# 场景管理
|
|
2
|
+
|
|
3
|
+
## 获取指定编号层级树
|
|
4
|
+
|
|
5
|
+
```javascript
|
|
6
|
+
/// <summary>
|
|
7
|
+
/// 获取指定编号层级树
|
|
8
|
+
/// </summary>
|
|
9
|
+
/// <param name="_id">对象编号;为空则为根层级</param>
|
|
10
|
+
/// <param name="_excludeTypes">需排除的类型集合,默认为空</param>
|
|
11
|
+
let treeData = app.project.getSceneTree(_id: string = this.root.id, _excludeTypes: Array<string> = [])
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## 切换层级
|
|
15
|
+
|
|
16
|
+
```javascript
|
|
17
|
+
/// <summary>
|
|
18
|
+
/// 切换层级
|
|
19
|
+
/// </summary>
|
|
20
|
+
/// <param name="_id">对象编号;为null则为根层级</param>
|
|
21
|
+
/// <param name="_isFocus">切换完成后是否聚焦</param>
|
|
22
|
+
let treeData = app.project.switchLevel(_id: string, _isFocus: boolean = false);
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## 层级切换监听事件
|
|
26
|
+
|
|
27
|
+
```javascript
|
|
28
|
+
/// <summary>
|
|
29
|
+
/// 层级切换监听事件
|
|
30
|
+
/// </summary>
|
|
31
|
+
/// <param>值为回调方法</param>
|
|
32
|
+
app.levelEvent=(_obj)=>{
|
|
33
|
+
console.log(_obj);
|
|
34
|
+
};
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## 根据指定自定义编号获取对象数组
|
|
38
|
+
|
|
39
|
+
```javascript
|
|
40
|
+
/// <summary>
|
|
41
|
+
/// 根据指定自定义编号获取对象
|
|
42
|
+
/// </summary>
|
|
43
|
+
/// <param name="_customNumber">对象自定义编号</param>
|
|
44
|
+
let object = app.project.findObjectByCustomNumber(_customNumber: string);
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## 获取指定类型对象
|
|
48
|
+
|
|
49
|
+
```javascript
|
|
50
|
+
/// <summary>
|
|
51
|
+
/// 获取指定类型对象
|
|
52
|
+
/// </summary>
|
|
53
|
+
/// <param name="_customType">对象类型</param>
|
|
54
|
+
/// <param name="queryParameters">查询参数:可选</param>
|
|
55
|
+
/// <param name="queryParameters.isCurrent">是否排除不在当前节点的对象;默认false</param>
|
|
56
|
+
/// <param name="queryParameters.isEnabled">是否排除隐藏的对象;默认false</param>
|
|
57
|
+
let objects = app.project.findObjectsByCustomType(_customType: string,queryParameters: { isCurrent: boolean, isEnabled: boolean });
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## 根据编号获取对象
|
|
61
|
+
|
|
62
|
+
```javascript
|
|
63
|
+
/// <summary>
|
|
64
|
+
/// 根据编号获取对象
|
|
65
|
+
/// </summary>
|
|
66
|
+
/// <param name="_id">对象编号</param>
|
|
67
|
+
let object = app.project.findObjectById(_id: string);
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## 获取指定对象编号下的所有子对象
|
|
71
|
+
|
|
72
|
+
```javascript
|
|
73
|
+
/// <summary>
|
|
74
|
+
/// 获取指定对象编号下的子对象数组
|
|
75
|
+
/// </summary>
|
|
76
|
+
/// <param name="_id">对象编号;为null则为根层级</param>
|
|
77
|
+
/// <param name="_includeSub">是否包括孙物体;默认false</param>
|
|
78
|
+
let objects = app.project.getChildsById(_id: string, _includeSub: boolean = false);
|
|
79
|
+
```
|