Cult3D 对象与网页脚本的交互

这里我们将描述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示例:

<EMBED NAME="对象名称"PLUGINSPAGE="http://www.cult3d.com/newuser/index.html"SRC="yourobject.co"WIDTH="400" HEIGHT="300"ONSCENELOADED="(‘OnSceneLoaded被触发’)"</EMBED>
事件: OnLoadFinished 
当文件下载并解压完成的时候Cult3D浏览器触发该事件。
Netscape示例:

<EMBED NAME="Cult3D"PLUGINSPAGE="http://www.cult3d.com/newuser/index.html"SRC="yourobject.co"WIDTH="400" HEIGHT="300"ONSCENELOADED='document.embeds["Cult3D"].triggerEvent("事件名称")'></EMBED>------事件: OnLoadAborted 
当文件下载错误或者对象不存在时Cult3D浏览器触发该事件。
事件: OnSendMessage

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

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

<SCRIPT LANGUAGE="javascript"><!--function OnLoadFinished(){// 在这里插入需要代码}//--></SCRIPT><SCRIPT LANGUAGE=javascript FOR=Cult3D EVENT=OnLoadFinished><!--// 调用指定的方法OnLoadFinished()//--></SCRIPT><OBJECT id=Cult3Dclassid="clsid:31B7EB4E-8B4B-11D1-A789-00A0CC6651A8" width=192 height=192><PARAM NAME="SRC" VALUE="Test.co">></OBJECT>Internet Explorer下使用的VBScript代码:<SCRIPT LANGUAGE="vbscript"><!--Sub Cult3D_OnLoadFinished()‘ 在这里插入需要代码End Sub--></SCRIPT><OBJECT id=Cult3Dclassid="clsid:31B7EB4E-8B4B-11D1-A789-00A0CC6651A8" width=192 height=192><PARAM NAME="SRC" VALUE="Test.co"></OBJECT>
尽管Microsoft Internet Explorer支持VBScript脚本,但为了方便期间我们仍然推荐使用JavaScript脚本。Netscape Communicator下使用的JavaScript代码:

<SCRIPT LANGUAGE=”javascript”><!--function OnLoadFinished(){// 在这里插入需要代码}//--></SCRIPT><EMBED NAME=Cult3DPLUGINSPAGE="http://www.cult3d.com/newuser/index.html"SRC="Test.co"WIDTH="192" HEIGHT="192"ONLOADFINISHED="OnLoadFinished()"></EMBED> 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");elseCult3D.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 代码示例: <HTML><HEAD><TITLE>Netscape example</TITLE><SCRIPT LANGUAGE="JavaScript"><!--function OnLoad() {document.frm.txt.value = "物体引导!";document.embeds[“Cult3D”].triggerEvent(“Start”);}function OnAbort() {document.frm.txt.value = "文件非法或丢失!";}function OnScene() {document.frm.txt.value = "正在引导,请等待...";}//--></SCRIPT><BODY><EMBED NAME=Cult3DPLUGINSPAGE="http://www.cult3d.com/newuser/index.html"SRC="Test.co"WIDTH="400" HEIGHT="300"ONSCENELOADED="OnScene()"ONLOADABORTED="OnAbort()"ONLOADFINISHED="OnLoad()"></EMBED><FORM ID=frm NAME=frm>Result: <INPUT NAME=txt TYPE="TEXT" SIZE=30></FORM></BODY></HTML>

时间: 2024-09-08 16:14:00

Cult3D 对象与网页脚本的交互的相关文章

网页标准研究:用CSS实现网页中鼠标交互的方法

css|标准|交互|鼠标|网页 我们浏览网页的时候,经常会遇到一些交互的效果.例如容器在鼠标移上去的时候,会发生一些变化.这些效果,可以用多种方法来实现.现在我们要解决的是如何在CSS中写脚本实现交互效果. CSS代码如下: .show {width:600px;height:58px;margin:50px auto 0 auto;line-height:58px;border:1px solid #c00;background:#f0f0f0;text-align:center;/*webj

与浏览器脚本的交互的方法(二)

交互|脚本|浏览器 相关文章:与浏览器脚本的交互的方法(一) 3 LoadVars 使用LoadVars可以更好地控制数据的传递与接收. 例子: 场景上有一个组件Textarea(textarea1)和三个组件Button(btu1,btu2,btu3) Flash的AS var lv = new LoadVars(); var ll = new LoadVars(); lv.str = "Flash to IIS"; function handle_btu1() {       lv

基于lua的网页脚本开发语言cgilua(转)

这里为大家介绍基于lua脚本实现的网页开发语言,cgilua 介绍 cgilua使用Lua是一个用于创建动态网页的服务器端脚本语言.纯LUA脚本和LUA页(LP)的支持,cgilua.Lua脚本是一个Lua程序创建一个网页的全部内容并返回给客户端.Lua页面是一个常规的标记的文本(HTML,XML等)文件中嵌入Lua代码中使用一些特殊的标签.这些标签是由cgilua和结果页返回到客户端的处理. Lua脚本和Lua页同样易于使用,并选择其中的一个主要取决于所产生的网页的特点.当Lua页面逻辑和格式

如何在CSS中写脚本实现交互效果?

我们浏览网页的时候,经常会遇到一些交互的效果.例如容器在鼠标移上去的时候,会发生一些变化.这些效果,可以用多种方法来实现.现在我们要解决的是如何在CSS中写脚本实现交互效果. CSS代码如下:  代码如下 复制代码 event:expression( onmouseover = function()     {     this.style.backgroundColor='#ccc'     this.style.border='1px solid #000'     }, onmouseou

MS SQL基础教程:对象的SQL脚本

Enterprise Manager 提供了可视化的界面,在其中建立数据库及其对象,如表.视图.缺省值等,很少需要用户自己编辑程序代码.但对用户来说,了解这些对象是如何通过SQL语言建立,的并得到其SQL 语言脚本(Script) 是很有好处.的在Enterprise Manager 中提供了工具,以帮助用户产生这些对象的SQL 语言脚本. 生成对象的SQL 脚本方法如下: (1) 在Enterprise Manager 中选择要生成SQL 脚本的对象,单击右键,从快捷菜单中的"所有任务(All

win8系统访问网页提示&quot;当前网页脚本发生错误“怎么办?

win8系统访问网页提示"当前网页脚本发生错误"怎么办?   解决方法: 一.清除IE缓存 1.清除一下IE浏览器的缓存,点IE上的工具--然后再选择最下面的Internet选项,再点Internet删除文件(记得勾上删除所有脱机内容),确定后再重新打开IE浏览器试试,同时请确认您使用的是IE6.0及以上版本; 2.您的网页上清缓存,在网页上选择工具->Interner选项->删除Cookies和删除文件,然后再确定; 3.请您点击IE浏览器中的"工具"

网页脚本注入执行任意代码

网页脚本注入执行任意代码 --突破网页本地脚本验证方法实例 最近为了帮朋友批量查询信息,查询页面上要求输入验证码,查询结果要保存到文件.首先想到的是验证码自动识别,太复杂了.总算让我找到一个非常好的软件--<网页自动操作通用工具>,不但可以通过注入跳过验证码,还能自动批量查询并保存查询结果.现将整个过程写下来分享一下. 基本理论:网页通过浏览器执行js脚本代码,实现对用户输入信息的合法性验证,这里指的是验证码验证.由于代码是在我们的本地浏览器中执行,所以我们完全有办法控制它.一般我们可以通过这

浅谈Android程序与JavaScript脚本的交互

我们都知道,手机时代的来临的主要标志是啥?能够方便的接入互联网!互联网展现给我们的方式一般都是网页,网页中又必不可少的拥有javascript,所以说,android提供对javascript的支持那是迫在眉睫了,幸好,android早就给我们提供了无缝连接.让我们可以通过android与javascript进行交互. 我们的应用很简单,如图: 我们有一个输入框,旁边有个按钮,点击按钮就会提示我们输入的内容.当然这只是html中最简单的程序了,但是你将这个程序放入android手机中访问下试试,

与浏览器脚本的交互的方法(一)

交互|脚本|浏览器 1. getURL向浏览器发送信息格式:getURL("地址","接收窗口","方式")例子: 建一个test.fla文档,第一帧建三个button(btu1,btu2,btu3)建一个Textinput(input1) AS脚本: function opensite() { this.getURL("http://www.macromedia.com", "_self"); } var