2012-03-15 15 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); 

カメラオブジェクトを文字列に変換してテキスト領域に表示します。通常、貴重なデータを提供しないので、これをやろうとはしません。デフォルトのオブジェクトは文字列を[オブジェクトオブジェクト]または同様のものとして表示します。おそらく、カメラオブジェクトにはカスタム文字列関数があります。私はその経験がありません。通常、オブジェクトのプロパティにアクセスして有用な情報を取得し、オブジェクト自体でこれを試してはいけません。

} 

この行は機能の終了です。開いている括弧は、関数定義の2行目のコードにあります。

+0

ありがとうございます。これは私が考えていることを理解するのに役立ちます – Dymond

関連する問題