程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> Cult3D 對象與網頁腳本的交互

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>

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved