试图理解一个功能

Dym*_*ond 3 apache-flex flash actionscript-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);
}
Run Code Online (Sandbox Code Playgroud)

Jef*_*ser 7

private var camera:Camera;
Run Code Online (Sandbox Code Playgroud)

此行创建类类型Camera的变量.它不会创建变量的实例.

private function list_change(evt:ListEvent):void {
Run Code Online (Sandbox Code Playgroud)

该行是标准函数标题.因为参数是ListEvent,所以我认为这个函数可能被写成一个事件处理程序.由于函数的名称,它最像是在列表上侦听更改事件.

var tList:List = evt.currentTarget as List;
Run Code Online (Sandbox Code Playgroud)

此行创建对调度事件的列表的引用,这导致执行此处理程序.

var cameraName:String = tList.selectedIndex.toString();
Run Code Online (Sandbox Code Playgroud)

此行将selectedIndex转换为字符串.将索引转换为字符串有点奇怪,而不是某些值.但他们这样做的原因似乎是下一行..

camera = Camera.getCamera(cameraName);
Run Code Online (Sandbox Code Playgroud)

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

textArea.text = ObjectUtil.toString(camera);
Run Code Online (Sandbox Code Playgroud)

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

}
Run Code Online (Sandbox Code Playgroud)

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