尝试理解一个函数

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);
}
1个回答

7
private var camera: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);

这里使用了变量 "camera"(在第 1 行定义),并且实际上获得了摄像头的一个实例。它使用了 "cameraName",让我想到派发此事件的列表中包含系统上可用相机的列表。

textArea.text = ObjectUtil.toString(camera);

这将把相机对象转换为字符串并在文本区域中显示它。通常情况下,您不会尝试这样做,因为它不提供有价值的数据。默认对象将字符串显示为[Object object]或类似的内容。也许相机对象有一个自定义字符串函数;我没有经验。通常,您会想要访问对象的属性来获取有用的信息,而不是尝试在对象本身上执行此操作。

}

这一行是函数的结束。开放括号在函数定义的第二行代码中。


非常感谢。这将帮助我理解我一直在思考的其他事情。 - Dymond

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接