2016-12-16 26 views
0

我是新手編程,我目前正在學習p5.js並且有一個關於變量的問題。所以頂部的變量不起作用,但放置在繪圖函數內部;爲什麼會這樣?爲什麼變量在Draw中工作,但不在代碼頂部?

說明:代碼的屏幕快照。 picture of the code

+0

在這種情況下,請不要爲您的問題添加圖片。只需在您的問題結尾處添加一個簡單的代碼示例即可。 –

+0

您已將圓定義爲對象,因此它應該是屬性而不是新的變體 –

+1

[https://img42.com/UdRNN] [https://img42.com/UdRNN] –

回答

0

直到調用setup()之後,才能使用內部p5.js函數或變量。更多信息可在the P5.js FAQ找到。

對此的解釋是有點複雜,但它必須做 隨路庫,以支持全球和 實例模式設置。爲了理解發生了什麼,讓我們先看看 訂單事件發生在加載了帶p5的頁面時(全局模式)。

  1. 已加載腳本。

  2. 加載HTML頁面(當這完成時,onload事件觸發,然後觸發步驟3)。

  3. p5啓動時,所有函數都被添加到全局命名空間中。

所以,問題是,腳本加載和評估之前P5是 開始,當它沒有意識到P5變量。如果我們嘗試 在這裏打電話給他們,他們會導致錯誤。但是,當我們在setup()和draw()函數調用中使用p5 時,這是可以的,因爲當加載第一個 腳本時, 瀏覽器不會查看函數。這是因爲setup()和draw()函數不是在用戶代碼中調用的 ,它們只是被定義的,所以 裏面的東西不會被運行或評估。

直到p5啓動時,setup()函數實際上是 run(p5會爲您調用它),並且此時在全局名稱空間中的p5函數存在 。

相關問題