2013-09-16 169 views
0

我最近開始使用Flash Builder在Flash中編程。來自JavaScript我習慣於一個「交互式」控制檯(Chrome的默認控制檯) - 通過交互式我的意思是我可以例如單擊一個對象來顯示它的屬性,並在運行時執行代碼。它還顯示了「trace()」語句來自哪個文件和哪一行。交互式Flash控制檯

這是可能的閃存? 我已經嘗試過「FlashFireBug」和「Vizzy」,但沒有運氣。

回答

0

您可以在某種程度上做到這一點。 Flash Builder基於Eclipse,因此它默認安裝了廣泛的調試框架。要做任何事情,首先需要插入一個斷點(雙擊一行左側的灰色條,或右鍵單擊>添加斷點)。與在開發控制檯中的JS一樣,這將停止代碼的執行,並允許您一步一步完成,另外,還可以訪問「表達式」和「變量」窗格。

「變量」窗格使您可以訪問斷點處行範圍內的所有對象。有了這個,你可以查看每一個對象的每個屬性。您也可以將這些屬性更改爲不同的值。然而,這跟JS控制檯不一樣好,因爲AS3的類型有多嚴格。您可以更改的內容有限,這僅僅是原始數據類型:數字,字符串,數組,對象。除此之外,我不相信你可以改變價值觀。

「表達式」窗格使您能夠調用屬性或運行表達式並獲取該值的完整讀數(因此您無需挖掘對象,只需調用它即可)。這又是有限的。您在此窗格中所做的事實不會改變任何內容。你可以運行一個函數並返回值,但它不會修改程序中的任何內容。

你可以輸入控制檯本身,但它什麼都不做。

據我所知,沒有辦法獲得跟蹤位置。我一般做任何痕跡,將留在原地的時間,像這樣長時間:

trace("[ClassName] trace output"); 

這樣,我至少知道它是來自哪個類。如果您創建自己的跟蹤函數(最可能使用靜態方法),您也可以自動執行該位。除此之外,我認爲你不能做更多。

JS和AS3的主要區別在於AS3是一種編譯語言。很多代碼實際上是在編譯時運行和計算的,所以在運行時不需要做什麼。 JS在運行時會運行所有內容,這就是爲什麼您可以修改開發工具中的代碼並調用它,並執行更改。就我所知,不幸的是,由於這種限制,你所尋求的對AS3來說根本不可能。

相關問題