2011-05-17 69 views
0

我想用haxe构建一个简单的闪存swf,显示我的摄像头输出。我想swf是可嵌入的,并在html中确定大小。所以我的html看起来像:用Haxe摄像头输出填充MovieClip

<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> 

这应该把一个尺寸为640x480的webcam.swf。要构建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对象大小。我究竟做错了什么?

非常感谢。

+0

供将来参考:看起来像改变相机模式改变视频控制的大小。寻找相机的正确视频模式是这里的问题。 – 2011-05-20 09:35:33

回答

0

我没有成功使您的代码在640x480下工作。

要让它在320×240的变化的工作线:

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

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

,并更改HTML分辨率为320x240。