Заполните MovieClip с выходом веб-камеры в Haxe - PullRequest
0 голосов
/ 17 мая 2011

Я пытаюсь создать простой Flash SWF с Haxe, который показывает вывод моей веб-камеры. Я хочу, чтобы SWF-файл был встраиваемым, а его размер определялся в HTML. Итак, мой HTML выглядит так:

<html>
<head><title>Web cam</title></head>
<body bgcolor="#dddddd">
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
    id="haxe"
    align="middle"
    width="640" height="480">
<param name="movie" value="webcam.swf"/>
<param name="allowScriptAccess" value="always" />
<param name="quality" value="high" />
<param name="scale" value="exactfit" />
<param name="bgcolor" value="#ffffff"/>
<embed src="webcam.swf"
       width="640" height="480"
       bgcolor="#ffffff"
       name="haxe"
       quality="high"
       align="middle"
       allowScriptAccess="always"
       type="application/x-shockwave-flash"
       pluginspage="http://www.macromedia.com/go/getflashplayer"
/>
</object>
</body>
</html>

Это должно поместить webcam.swf размером 640x480. Для сборки webcam.swf я использую следующий скрипт Haxe:

class Webcam {
    static function main() {
          var mc : flash.display.MovieClip;
          var rawvideo : flash.media.Video;
          var cam:flash.media.Camera = flash.media.Camera.getCamera();
          cam.setMode(320, 240, 24, false);
          cam.setQuality(0, 100);

          mc=flash.Lib.current;
          var stage = flash.Lib.current.stage;
          stage.scaleMode=flash.display.StageScaleMode.EXACT_FIT;
          rawvideo = new flash.media.Video(Std.int(stage.width), Std.int(stage.height) );
          rawvideo.attachCamera(cam);

          if (cam!=null) {
            mc.addChild(rawvideo);
          } else {
            trace("No Camera");
          }
    }    
}

Это создает SWF-файл, который показывает выходные данные веб-камеры, но с некоторыми большими белыми полосами справа и снизу. Я хочу, чтобы изображение с веб-камеры заполняло весь объект Flash. Что я делаю не так?

1 Ответ

0 голосов
/ 18 июня 2011

У меня не получилось заставить ваш код работать с разрешением 640x480.

Чтобы заставить его работать в 320x240, измените строку:

stage.scaleMode=flash.display.StageScaleMode.EXACT_FIT;

до

stage.scaleMode=flash.display.StageScaleMode.NO_SCALE;

И измените разрешение на 320x240 в HTML.

...