2012-03-18 85 views
0

我需要做一個簡單的PDF與一些3D對象進行口頭演示。我做了幾個視圖,每個視圖都有一個攝像機視點,一個對象和一個顯示模式。 爲了避免需要使用上下文菜單在不同視點之間進行手動切換,我希望視點能夠使用計時器自動切換(每個視點停留幾秒鐘)。我想不必觸摸鼠標(也不是鍵盤),所以我希望在頁面出現後立即開始播放。我發現javascript命令runtime.setView(N,x)切換到N中的第x個視圖,但我不知道該把它放在哪裏(我不想定義一個函數,它會當我按下按鈕時會被調用,因爲我希望一切都被自動化)。另外,我不知道如何暫停幾秒鐘。pdf與JavaScript的3d:簡單的例子

任何幫助?謝謝 !

回答

1

我相信你正在尋找setInterval(fn, time),它會按照你設定的時間間隔定期調用一個函數。我不熟悉你提到的setView()方法,但是這裏有一些僞代碼,你可以在文檔主體的末尾添加標籤。

function startSwitcher() 
    var viewNum = 0; 
    var maxViews = 5;  // you set this to how many views there are 
    setInterval(function() { 
     ++viewNum; 
     if (viewNum >= maxViews) { 
      viewNum = 0; 
     } 
     runtime.setView(N, viewNum);  // you will have to figure out this line 
    }, 2000); 
} 

startSwitcher(); 

2000是2000毫秒,是執行函數之間的時間間隔。你可以把任何毫秒數放在那裏。

runtime.setView(N, viewNum)行是你必須弄清楚的,因爲我不熟悉你試圖在那裏使用的任何庫。該代碼的執行部分是viewNum變量,該變量用於配置下一個旋轉視圖。

+0

謝謝 - 但是當我使用此代碼(與N = maxViews),腳本似乎並不開始時,顯示3D對象。我不知道如果語法錯誤或錯誤嵌入javascripts的3d pdfs行爲:如果有語法錯誤,腳本是否啓動並顯示錯誤消息?我對JS和3d pdf也很新穎。謝謝! – WhitAngl 2012-03-18 06:17:25

+0

@WhitAngl - 你將不得不找出如何與網頁javascript的3d pdf通信。我假設你必須使用JavaScript來獲取頁面中的PDF對象,在加載時註冊某種回調,然後調用一些方法。但是,我甚至不知道你在用什麼工具。 – jfriend00 2012-03-18 06:34:26

+0

好的謝謝。我只是使用Adobe Acrobat Pro,它允許集成3D元素並附加一些JavaScript文件...我不知道如何在兩者之間進行通信,並且似乎沒有關於它的文檔和教程:s – WhitAngl 2012-03-18 06:46:11

0

我認爲runtime.SetView(..)方法與作爲一個字符串,而不是viewnumber視圖的名稱。我有一個庫門級腳本這個功能,它爲我的作品:

// view is the name of the view for example "TopView" 
 
function setView(view){ 
 
\t console.println("Navigating to view: "+view); 
 
\t 
 
\t var pageIndex = this.pageNum; 
 

 
\t var annotIndex = 0; 
 

 
\t var c3d = this.getAnnots3D(pageIndex)[ annotIndex ].context3D; 
 

 
\t c3d.runtime.setView(view, true); 
 
}

setInterval(..)從jfriend00's結合這個答案UND你應該得到你所需要的。 此致敬禮