2012-01-05 10 views
0

attachCamera()によって送出されるイベントの名前を知っている人は誰でも、私はカメラをロードした写真を撮りたいと思います。私はattachCameraを呼び出した後に自分のコードを実行しようとしますが、 VideoDisplayを空にします。そのため、attachCamera()が完了した後にトリガーされるイベントがあるかどうかを知りたいのです。ActionScriptカメラ付きオンエアアプリケーションの管理

+0

umm ..イベントトリガーについてのリソースが見つかりませんでした。タイマーを使用して解決しました。 –

答えて

0

Cameraクラスのを見ると、カメラの動作状況を確認できます。また、how to use Videoを調べることで、Airがカメラのフィードをどのように使用するかを理解するのに役立ちます(もちろん、これはVideo classを使用しています)。

+0

申し訳ありませんが、私はあなたのコメントを見ましたが、あなたはこれまでに特定のウェブカメラの最高品質を管理しようとしていますか? –

+0

私は他の質問でよりよく尋ねられると思います(他の人も回答を見つけることができるように)。 – iND

1

ピクチャを「取得」するには、カメラ入力をソースとして使用するビットマップを描画する必要があります。ビットマップコンテナのx/yを定義し、内側に配置する必要があります。

ビットマップを描画すると、できることはたくさんあります。必要なものによって異なります。

0

タイマーは機能しますが、Video.attachCamera()が呼び出された後にCameraインスタンスが送出した最初のActivityEventを処理するのがより直接的な解決策です。

var video:Video = new Video(); 
var camera:Camera = Camera.getCamera(); 
camera.addEventListener(ActivityEvent.ACTIVITY, onCameraActivity); 

private function onCameraActivity (evt:ActivityEvent) :void { 
    camera.removeEventListener(ActivityEvent.ACTIVITY, onCameraActivity); 

    // wait a bit to ensure the camera frame is not empty  
    var timer:Timer = new Timer(50, 1); 
    timer.addEventListener(TimerEvent.TIMER_COMPLETE, 
     function (evt:TimerEvent) :void { 
      timer.removeEventListener(TimerEvent.TIMER_COMPLETE, arguments.callee); 

      // take snapshot here 
      var bitmapData:BitmapData = new BitmapData(video.width, video.height); 
      bitmapData.draw(video); 
     } 
    ); 
    timer.start(); 
} 

EDIT:そうのようないくつかのカメラはとても空白のフレームにActivityEvent.ACTIVITY結果後の最初のフレームをキャプチャし、初期化するために少し時間がかかります。これに対処するための簡単なタイムアウトを追加しました。

関連する問題