2012-03-15 76 views
3

我試圖解釋我在網上找到的函數。 我知道這個功能是幹什麼的,它會在您的計算機上獲得有關網絡攝像頭的信息,並將其發佈到textArea上,但是個別行只是有點困惑。試圖瞭解一個函數

任何幫助?

由於

private var camera:Camera; 
private function list_change(evt:ListEvent):void { 
var tList:List = evt.currentTarget as List; 
var cameraName:String = tList.selectedIndex.toString(); 
camera = Camera.getCamera(cameraName); 
textArea.text = ObjectUtil.toString(camera); 
} 

回答

7
private var camera:Camera; 

這行創建類型相機的變量。它不創建變量的一個實例。

private function list_change(evt:ListEvent):void { 

此行是標準功能標題。因爲參數是一個ListEvent,它使我認爲這個函數可能寫成一個事件處理程序。由於功能的名稱,它最喜歡聽列表上的更改事件。

var tList:List = evt.currentTarget as List; 

該行創建了一個對調度該事件的列表的引用,該事件導致該處理程序被執行。

var cameraName:String = tList.selectedIndex.toString(); 

該行將selectedIndex轉換爲字符串。將索引轉換爲字符串有點奇怪,而不是某些值。但他們這樣做看起來是下一行的原因..

camera = Camera.getCamera(cameraName); 

這將使用攝像機變量(第1行中定義的回),實際上進入相機的一個實例。它使用「cameraName」,這讓我認爲派發此更改事件的列表包含系統上可用的相機列表。

textArea.text = ObjectUtil.toString(camera); 

這將相機對象轉換爲字符串並將其顯示在文本區域中。通常你不會嘗試這樣做,因爲它不提供有價值的數據。默認對象將顯示字符串爲[Object object]或類似的東西。也許相機對象有一個自定義的字符串函數;我沒有這方面的經驗。通常情況下,你想訪問對象的屬性來獲取有用的信息,而不是嘗試在對象本身。

} 

該行是該函數的結尾。打開的括號位於函數定義的第二行代碼中。

+0

非常感謝。這會幫助我理解我一直在想的其他事情 – Dymond 2012-03-15 21:00:24