Tech Racho エンジニアの「?」を「!」に。
  • 開発

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>

CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。