
 |
|

|
 |
監視カメラ(camera_alert.fla)のActionScriptを記述する
 |
| |
リモート共有オブジェクトを使って感度の調節を行います。[ウィンドウ]-[開発パネル]-[アクション]からアクションウィンドウを開き、ActionScriptを記述していきます
(前回コラムとの変更点を赤字で表示しています)。
◆1. FCSへの接続の定義
1
2
3
4
5
6
7
8
9
10
11 |
var CameraView;
nc = new NetConnection();
nc.onStatus = function(res) {
if(res.code == "NetConnection.Connect.Success") {
initSO();
trace("接続しました");
} else {
trace("接続に失敗しました");
}
};
nc.connect("rtmp:/camera_watching"); |
(1)カメラオブジェクトの定義をします。
(2)〜(11)FCSへの接続の定義をします(第4回コラム参照)。
◆2. 共有オブジェクトの定義(1)
リモート共有オブジェクトを使って「ノブをドラッグしたとき、ノブの位置が変わるのでカメラ感度調整を呼ぶ」という動作を定義します。
12
13
14
15
16
17
18 |
function initSO() {
so = SharedObject.getRemote("Alert", nc.uri, true);
so.onSync = function() {
knob._y = so.data.y;
setCameraSensitibity();
};
so.connect(nc); |
(12)function以下に共有オブジェクトの定義を記述していきます。
(13)getRemoteメソッドを実行して、リモート共有オブジェクトを生成します。「Alert」という名前で共有し、NetConnectionオブジェクトのURIは、「nc.uri」と記述します。監視モニタとノブ位置情報を共有することで、ノブが連動して動きます。ノブの位置を維持するには、「true」と指定し、ノブの位置情報をサーバに保存しておきます。こうすることによって、アプリケーションをすべてcloseしても、再立ち上げしたとき、ノブがcloseする前に指定した位置になっています(close後、定位置に戻したい場合は、「false」と指定します)。
(14)〜(17)ノブをドラッグしたとき、ノブの位置が変わるので、カメラ感度調整(setCameraSensitibity)を呼びます。
(18)NetConnectionオブジェクト(nc)を使ってリモート共有オブジェクトに接続します。
◆3. 共有オブジェクトの定義(2)
リモート共有オブジェクトを使って、「バーの上端・下端の定義」をします。
19
20
21 |
border = bar.getBounds(_root);
yTop = border.yMin;
yBottom = border.yMax; |
(19)barの最小および最大のy座標を定義します。
(20)barの上端は、もっとも小さいy座標の値をとります。
(21)barの下端は、もっとも大きいy座標の値をとります。
◆4. 共有オブジェクトの定義(3)
リモート共有オブジェクトを使って、「ノブ位置に応じたカメラ感度調整定義」をします。
22
23
24
25
26
27
28 |
function setCameraSensitibity() {
sensitivity = 100-((yBottom - knob._y) / (yBottom - yTop) * 100);
timeout=200- ((yBottom - knob._y) / (yBottom - yTop) * 200);
cameraView.setMotionLevel(sensitivity, timeout);
trace ("感度は" + sensitivity);
trace("タイムアウトは" + timeout);
} |
(22)ノブ位置でのカメラ感度調整定義をします。
(23)ノブの位置に応じて、モーション量は、0〜100の値をとります。
ノブが一番上にある場合が、最高感度(sensitivity = 0)、
ノブが一番下にある場合が、最低感度(sensitivity = 100)となります。
(24)ノブの位置に応じて、タイムアウトは、100〜200(ミリ秒)の値をとることとします。
ノブが一番上にある場合が、timeout = 100 、
ノブが一番下にある場合が、timeout = 200 となります。
(25)〜(28)cameraView.setMotionLevel()を使って、cameraView.onActivity(true)
を呼び出すのに必要なモーションの量(sensitibity)と、モーションのない時間(timeout)がどれだけ続くと cameraView.onActivity(false)
が呼び出されるかを指定します。sensitivity とtimeoutは、23と24の値が代入されます。
|



|
 |

















|