我在Angular SPA內部構建了一系列Web應用程序。這些應用程序中的每一個都位於Angular模板內部,並且它們之間的導航會剝離並替換適當的DOM元素並從控制器運行腳本。有角度的畫布(Three.js)場景
我的問題更多的是一般性問題:從Three.js場景導航離開並回溯時,顯然DOM元素和腳本本身會重新運行,導致場景從「scratch」開始。有沒有辦法讓場景在後臺運行,以便用戶可以導航回到應用程序,並讓它停留在他們離開的地方?
這是更可取的嗎?我知道,當用戶導航到另一個選項卡時,requestAnimationFrame方法會停止動畫,但在Angular上下文中它是如何工作的?
作爲示例,here's the WIP web page。嘗試從StarFinder標籤導航,然後返回,您會看到我的意思。
編輯:Here's a JSFiddle來演示我的意思(在這種情況下,它修改了沒有Angular的DOM)。
真的,有問題的是位渲染器,在導航回到它被重新啓動:
function render() {
requestAnimationFrame(render);
cube.rotation.x += 0.01;
cube.rotation.y += 0.01;
renderer.render(scene, camera);
}
render();
請在這裏添加有意義的代碼和問題描述。不要只是鏈接到需要修復的網站 - 否則,一旦問題解決,這個問題將會給未來的訪問者帶來任何價值。發佈一個證明你的問題的[簡短的,自包含的,正確的例子(SSCCE)](http://www.sscce.org/)將幫助你得到更好的答案。有關更多信息,請參見[我網站上的某些內容不起作用。我可以只粘貼一個鏈接嗎?](http://meta.stackexchange.com/questions/125997/)謝謝! – Cerbrus
@Cerbrus鏈接的網站不是「需要修復」的網站,而且這個問題比基於特定代碼更普遍/理論化。你想如何繼續? –
解決問題時,問題中的鏈接將失去它的價值,因此它不會幫助未來訪問者的問題。你可以在這個問題上發佈SSCCE嗎? – Cerbrus