主题:  Cult3D 对象与网页脚本的交互 ,感觉不错

ababy

职务:普通成员
等级:1
金币:0.0
发贴:61
#12001/11/21 12:15:56
Cult3D 对象与网页脚本的交互
INDMOO.COM制作
这里我们将描述Cult3D的脚本特征,以及如何在网页中使用脚本与Cult3D对象的交互操作,通过交互我们可以在用户选择了正确的答案后开始一段动画,或者按用户的选择改变物体的颜色,等等。当Cult3D运行在Netscape Communicator和Microsoft Internet Explorer浏览器下时在调用方面是有区别的,这里我们都将说明。
Netscape Navigator使用javascript (JS)和Cult3D插件通讯,在Windows下则是使用ActiveX 技术。事实上,无论是Netscape的插件,还是Internet Explorer的插件,Cult3D浏览器都是一个ActiveX组件。
ActiveX组件脚本语言是Microsoft Visual Basic Script (VBS)。JS和VBS在语法上有细微的差别,这就是我们为什么制作"Cult3D.js"的原因。你只要在网页内使用JS脚本就可以了,因为JS脚本可以被Internet Explorer和Netscape执行。我们推荐使用JS脚本,除非你使用的是不支持JS脚本的Internet Explorer(Windows 9x/NT)。VBS不被非Windows操作系统支持。

--------------------------------------------------------------------------------
Cult3D事件
当条件满足的时候就触发一个事件,有下列四种事件可能发生:
1. the scene is loaded场景被引导
2. the complete object is loaded场景引导完成
3. the object is invalid or missing对象非法或者丢失
4. custom messages created by the designer通过Cult3D Designer定制的消息
当事件被触发的时候,它可以激活网页脚本,如果网页脚本没有包含激活事件句柄,该事件将被忽略。

--------------------------------------------------------------------------------
事件: OnSceneLoaded
当有适当的信息启动场景的时候Cult3D浏览器触发该事件, 这时Textures和cursors可能还没有被引导完成。
Netscape示例:
PLUGINSPAGE="http://www.cult3d.com/newuser/index.html"
SRC="yourobject.co"
WIDTH="400" HEIGHT="300"
ONSCENELOADED="(‘OnSceneLoaded被触发’)"


--------------------------------------------------------------------------------
事件: OnLoadFinished
当文件下载并解压完成的时候Cult3D浏览器触发该事件。
Netscape示例:
PLUGINSPAGE="http://www.cult3d.com/newuser/index.html"
SRC="yourobject.co"
WIDTH="400" HEIGHT="300"
ONSCENELOADED='document.embeds["Cult3D"].triggerEvent("事件名称")'>


--------------------------------------------------------------------------------
事件: OnLoadAborted
当文件下载错误或者对象不存在时Cult3D浏览器触发该事件。

--------------------------------------------------------------------------------
事件: OnSendMessage
当Cult3D浏览器接收到通过Cult3D Designer指定的“Send Message to Host”动作被激活或者由Java程序调用时触发该事件,返回的消息可以用 “getLastMessage()接收。


示例:
Internet Explorer下使用的javascript代码:


classid="clsid:31B7EB4E-8B4B-11D1-A789-00A0CC6651A8"
width=192 height=192>

>

Internet Explorer下使用的VBScript代码:

classid="clsid:31B7EB4E-8B4B-11D1-A789-00A0CC6651A8"
width=192 height=192>


尽管Microsoft Internet Explorer支持VBScript脚本,但为了方便期间我们仍然推荐使用javascript脚本。
Netscape Communicator下使用的javascript代码:

PLUGINSPAGE="http://www.cult3d.com/newuser/index.html"
SRC="Test.co"
WIDTH="192" HEIGHT="192"
ONLOADFINISHED="OnLoadFinished()">


--------------------------------------------------------------------------------
javascript 方法
在网页上可以通过以下的方法控制Cult3d object对象
Netscape:
object.setAntiAliasing(mode)
object.getAntiAliasing()
Internet Explorer:
object.AntiAliasing
该方法使网页可以设置Cult3D物体的抗锯齿模式,当使用软件渲染时抗锯齿属性可以被改变,它有三种不同的值:
0 – 自动模式,可以通过设定“ANTIALIASINGDELAY”时间值来指定发生的时间间隔;但场景中有物体移动时,抗锯齿属性将被禁止,以保证场景演示速度。
1 – disable禁止
2 – enable允许
参看“ANTIALIASING” 参数。

--------------------------------------------------------------------------------
Netscape:
object.setAntiAliasingDelay(delay)
object.getAntiAliasingDelay()
Internet Explorer:
object.AntiAliasingDelay
该属性使网页通过设定“ANTIALIASINGDELAY”时间值来指定自动抗锯齿发生的时间间隔,抗锯齿延迟仅仅当使用软件渲染时可以被改变,请参看“ANTIALIASINGDELAY”。

--------------------------------------------------------------------------------
Netscape:
object.triggerEvent(name)
Internet Explorer:
object.TriggerEvent(name)
该方法触发一个命名的目标事件,并返回一个布尔值,当Cult3D发现该目标事件时返回为真(True)。
Netscape示例:
var Cult3D = document.embeds[“Cult”];
var triggered = Cult3D.triggerEvent(“MoveClock”);
if (!triggered)
alert("Event没有找到!");

--------------------------------------------------------------------------------
Netscape:
object.getVersion()
Internet Explorer:
object.Version
该方法返回Cult3D浏览器版本号。
Netscape示例:
var Cult3D = document.embeds["Cult"];
var CultVersion = Cult3D.getVersion();
window.alert("Cult3D version " + CultVersion);

--------------------------------------------------------------------------------
Netscape:
object.getLastMessage()
Internet Explorer:
object.LastMessage
该方法接收到通过Cult3D Designer指定的“Send Message to Host”动作激活时发送的最新消息。如果消息为空,它也将被设置为空。

--------------------------------------------------------------------------------
Netscape:
object.getFrame()
Internet Explorer:
object.Frame
该方法返回Cult3D对象的当前帧数,随着渲染时间,它是逐渐变大的。

--------------------------------------------------------------------------------
Netscape:
object.setFocus()
Internet Explorer:
object.Focus
该方法设置Cult3D对象的键盘焦点,可以不通过用户单击Cult3D对象,手动将当前网页的键盘焦点设置到Cult3D对象上。
该方法对Internet Explorer可以强制性的每时每刻使用户都可以使用键盘与Cult3D对象交互,该方法Netscape不适用,因为Netscape自动将键盘焦点都设置到嵌入的Cult3D对象上了。如果你不使用该属性,用户使用键盘操作Cult3D对象时可能没有反应。

--------------------------------------------------------------------------------
Netscape:
object.getActionStatus(name)
Internet Explorer:
object.GetActionStatus(name)
该方法返回指定事件的动作状态,它的返回值:
-1 – 事件名称没有找到
0 – 事件没有执行
1 – 事件已经执行
Netscape示例:
var Cult3D = document.embeds["Cult"];
var status = Cult3D.getActionStatus("OpenDoor");
if (status == -1)
alert("Event没有找到!");
else if (status == 1)
Cult3D.triggerEvent("CloseDoor");
else
Cult3D.triggerEvent("OpenDoor");

--------------------------------------------------------------------------------
Netscape:
object.triggerAction(name,action)
Internet Explorer:
object.TriggerAction(name,action)
该方法发送带参数的消息给Cult3D Java事件,不同于不带参数的“triggerEvent”方法。该动作参数必须是字符串,如果Cult3D发现该Java事件,其返回值为真。
Netscape示例:
var Cult3D = document.embeds["Cult"];
var triggered = Cult3D.triggerAction("SetClock", "" + new Date().getTime());
if (!triggered)
alert("Event没有找到!");
Netscape example使用javascript 代码示例:


Netscape example



PLUGINSPAGE="http://www.cult3d.com/newuser/index.html"
SRC="Test.co"
WIDTH="400" HEIGHT="300"
ONSCENELOADED="OnScene()"
ONLOADABORTED="OnAbort()"
ONLOADFINISHED="OnLoad()">


Result:



相关示例请查看本站点其他教程
INDMOO.COM制作



平凡人

职务:普通成员
等级:4
金币:17.0
发贴:1442
#22001/11/21 13:04:37
下次贴出来最好注明转之哪里,不然.....
你可以试着自已做一个和网页的连接