试图理解一个功能

时间:2012-03-15 20:11:43

标签: actionscript-3 flash flex

我试图理解我在网络上找到的功能。 我知道这个功能是什么,它在你的计算机上获取有关网络摄像头的信息并将其发布在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 个答案:

答案 0 :(得分: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);

这使用相机变量(在第1行中定义)并实际获取相机的实例。它使用“cameraName”,这使我认为调度此更改事件的列表包含系统上可用的摄像机列表。

textArea.text = ObjectUtil.toString(camera);

将摄像机对象转换为字符串并将其显示在文本区域中。通常你不会尝试这样做,因为它没有提供有价值的数据。默认对象将字符串显示为[Object object]或类似的东西。也许相机对象具有自定义字符串功能;我对此没有经验。通常,您需要访问对象的属性以获取有用的信息,而不是在对象本身上尝试此操作。

}

这一行是函数的结尾。 open括号位于函数定义的第二行代码中。