2012-03-15 80 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