2015-04-23 12 views
1
var star = document.getElementById("star"); 
var color = "#ef6360"; 

bonsai.run(star, { 

    code: function() { 

     new Star(30, 30, 20, 5, 0.7).attr({ 

      fillColor: color 

     }).addTo(stage); 

    } 

}); 

它不起作用,但它會工作,如果我刪除變量並直接使用字符串,如fillColor:"#ef6360"。爲什麼?如何在bonsai.js上使用變量?

+0

你指的是你用一個字符串替換哪個變量?而且,用哪個字符串?該變量是否在其他地方使用? –

+0

是'bonsai.run()'語句後改變的'color'變量嗎? – shakib

回答

2

據我所知,你不能裏面code訪問變量,因爲它的上下文有瀏覽器的有限訪問按文件here (read the first note)

這就是文檔所說的。

:澆道上下文具有瀏覽器功能的有限的接入(例如,沒有DOM的訪問),因爲在大多數情況下,盆景代碼在工人執行。因此,您僅限於使用所提供的Bonsai API和爲工作人員提供的常規JS功能(see Functions available for workers on MDN for details)。如果您想將初始數據傳遞給亞軍上下文,您可以閱讀本頁底部的內容,或者如果您想通過盆景動態操作DOM,則應該查看Communication overview

如果有辦法從web worker中訪問窗口範圍,那麼這是可能的。 (我不知道這是否可能)

希望這會有所幫助。