前一阵子研究的Director做Shockware 3D,结果因为3D设计师一句话被推翻了。不得不重新回到C3D的阵容中。
Cult3D designer是一个很傻瓜的软件,几乎没有脚本这个概念,事件和动作的关联,再加上一些参数的设置,就可做出互交式Web3D的效果了。不过往往在Web上的实际应用要求并不仅仅限于此。故此,Java 和Javascript可做为C3D的一个很好的扩充和强化。 考虑到做3D全景只是一个小Job,不必动用Java要浏览者多装一个Java的插件,故此我选用了Javascript。
先把添加以一个自定义事件,命名为“reset”。 C3D 的ActiveX对象的ID为“CultObject”,故document.getElementById("CultObject")..triggerEvent("reset");
便可以触发改事件了。
例子:(演示 地址:http://demo.rainmantech.com/demo/pano2/ )
<embed name="CultObject"
pluginspage="http://www.cult3d.com/newuser/index.html"
src="demo.co"
width="461"
height="313"
type="application/x-cult3d-object"
antialiasing="0"
pbcolor="FFFFFF"
border="0"
viewfinished="0"
disablepb="0"
antialiasingdelay="250"
embed=""
></embed>
<script language="javascript" for="CultObject">
//var lock = 0;
var timeout;
function Obj(id){
return document.getElementById("CultObject");
}
function C3D_Action(EventName,lock){
Obj("CultObject").triggerEvent(EventName);
if(lock ==1){
clearTimeout(timeout);
timeout = setTimeout("C3D_Action('"+EventName+"',1)",50);
}
else{
clearTimeout(timeout);
}
}
function RotateContinue(EventName){
clearTimeout(timeout);
C3D_Action(EventName,1);
}
</script>
<br />
<br />
<input onclick="javascript:C3D_Action('reset',0);" type="button" value="重置" />
<input onmouseup="javascript:C3D_Action('',0);" onmousedown="javascript:C3D_Action('rotate_left',1);" onmouseout="javascript:C3D_Action('',0);" type="button" value="左转" />
<input onmouseup="javascript:C3D_Action('',0);" onmousedown="javascript:C3D_Action('rotate_right',1);" onmouseout="javascript:C3D_Action('',0);" type="button" value="右转" />
<input onclick="javascript:RotateContinue('rotate_left');" type="button" value="左转(自动)" /> <input onclick="javascript:RotateContinue('rotate_right');" type="button" value="右转(自动)" />
<input onmouseup="javascript:C3D_Action('',0);" onmousedown="javascript:C3D_Action('rotate_up',1);" onmouseout="javascript:C3D_Action('',0);" type="button" value="上翻" />
<input onmouseup="javascript:C3D_Action('',0);" onmousedown="javascript:C3D_Action('rotate_down',1);" onmouseout="javascript:C3D_Action('',0);" type="button" value="下翻" />
<input onmouseup="javascript:C3D_Action('',0);" onmousedown="javascript:C3D_Action('far',1);" onmouseout="javascript:C3D_Action('',0);" type="button" value=" 远 " />
<input onmouseup="javascript:C3D_Action('',0);" onmousedown="javascript:C3D_Action('near',1);" onmouseout="javascript:C3D_Action('',0);" type="button" value=" 近 " />