Flex Builderで使うmxmlファイルの書き方

Flex Builderを初めて使う方のためのサンプルです。

Webカメラで撮影し、それをリアルタイムに表示したり、定期的に静止画を撮影したりできます。
(簡単にするため、エラー処理等は省いてあります)

Flex Builderを起動→Flexプロジェクトでプロジェクトを作成し、mxmlファイルを書くだけで作れます。
簡単で良いですね。

this.addChild() ではなく、this.stage.addChild() を使うあたりは、注意が必要です。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    <mx:Button x="20" y="295" label="これを押すと撮影開始" click="init()"/>
    <mx:Button x="159" y="295" label="画質UP" click="quality()" />
    <mx:Image x="159" y="144" width="236" height="143" id="myimage" scaleContent="true" />
    <mx:Script>
        <![CDATA[
            private var camera:Camera = null;
            public var video:Video = null;

            /**
             * カメラを初期化する
             */
            public function init():void {
                //カメラを初期化する
                camera = Camera.getCamera();
                if (camera == null) {
                    trace("ERROR");
                    return;
                }
                trace("Camera OK");

                video = new Video();
                video.attachCamera(camera);

                //ビデオを表示する
                video.width = 240;
                video.height = 180;
                this.stage.addChild(video);
                video.x = 10;

                tick();
            }

            /**
             * たまに呼ばれて、キャプチャした画像を表示する
             */
            private function tick():void {
                setTimeout(tick, 1000); //1秒後にまた呼ぶ

                if (video == null || camera == null || camera.muted) {
                    return;
                }

                //静止画をキャプチャする
                var bd:BitmapData = new BitmapData(320, 240);
                bd.draw(video);

                var bmp:Bitmap = new Bitmap(bd);
                myimage.source = bmp;
            }

            /**
             * カメラの画質を向上させる
             */
            private function quality():void {
                if (video != null && camera != null && !camera.muted) {
                    camera.setMode(640, 480, 60);
                }
            }
        ]]>
    </mx:Script>
</mx:Application>
デザインも頼めるシステム開発会社をお探しならBPS株式会社までどうぞ 開発エンジニア積極採用中です! Ruby on Rails の開発なら実績豊富なBPS

この記事の著者

baba

ゆとりプログラマー。 高校時代から趣味でプログラミングを初め、そのままコードを書き続けて現在に至る。慶應義塾大学環境情報学部(SFC)卒業。BPS設立初期に在学中から参加している最古参メンバーの一人。Ruby on Rails、PHP、Androidアプリ、Windows/Macアプリ、超縦書の開発などを気まぐれにやる。軽度の資格マニアで、情報処理技術者試験(16区分17回 + 情報処理安全確保支援士試験)、技術士(情報工学部門)、Ruby Programmer Gold、AWSソリューションアーキテクト(アソシエイト)、日商簿記2級、漢検準1級などを保有。

babaの書いた記事

BPSアドベントカレンダー

週刊Railsウォッチ