FLY文件可以被理解为一种特殊的工程索引文件,里面除了记录一些文件存储的位置信息外,还可以定义一些实体对象,包括这些对象的空间信息和属性信息等丰富内容;
FLY文件中存在一个信息树,信息树中的每个对象都有一个ItemID,包括每一个组Group都有对应的GroupID,而且有两个特殊的GroupID是需要大家知道的:
0 表示 树的根节点;-1 表示隐藏组,所谓隐藏组,就是在信息树中看不见的一个组,但里面的对象是同样可以显示在三维场景中的。
感兴趣的兄弟可以执行下面的程序看看效果:
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 3 <html xmlns="http://www.w3.org/1999/xhtml"> 4 <head> 5 <title></title> 6 <script type = "text/javascript" language = "javascript"> 7 function Test1() { 8 var SGWorld = CreateSGObj(); 9 var ItemID = SGWorld.ProjectTree.GetNextItem(0, 10); 10 SGWorld.ProjectTree.SetParent(ItemID, SGWorld.ProjectTree.HiddenGroupID); 11 } 12 13 function Test2() { 14 var SGWorld = CreateSGObj(); 15 var hid = SGWorld.ProjectTree.HiddenGroupID; 16 var ItemID = SGWorld.ProjectTree.GetNextItem(hid, 11); 17 if (ItemID > 0) { 18 var gid = SGWorld.ProjectTree.FindItem("组名称"); 19 if (gid > 0) { 20 21 } 22 else { 23 gid = SGWorld.ProjectTree.CreateGroup("组名称", 0); 24 } 25 SGWorld.ProjectTree.SetParent(ItemID, gid); 26 } 27 else { 28 alert("没了"); 29 } 30 } 31 32 /* 33 功能: 创建sgworld对象 34 备注: 赵贺 2011.04.01. 35 */ 36 37 function CreateSGObj() { 38 var obj = $("sgworld"); 39 if (obj == null) { 40 obj = document.createElement('object'); 41 document.body.appendChild(obj); 42 obj.name = "sgworld"; 43 obj.id = "sgworld"; 44 obj.classid = "CLSID:3a4f91b0-65a8-11d5-85c1-0001023952c1"; 45 } 46 return obj; 47 } 48 function $(id) { 49 return window.document.getElementById(id); 50 } 51 </script> 52 </head> 53 <body> 54 <table style="margin: 0px; border: 0px;"> 55 <tr> 56 <td colspan = "4"> 57 <input id="Button1" type="button" value="隐藏" onclick="Test1()" /> 58 <input id="Button2" type="button" value="显示" onclick="Test2()" /> 59 </td> 60 </tr> 61 <tr> 62 <td colspan = "4"> 63 </td> 64 </tr> 65 </table> 66 </body> 67 </html>