我无法调整包装UIComponent
对象的自定义flash.media.Video
(我选择这种方式的原因是因为mx.control.VideoDisplay
不支持flash.media.Video
中可用的流式播放1}}即attachNetStream()
)。一旦我创建了320x240 Video
大小并将其从父级中移除,我就无法将其替换为更大或更小的大小。
这是我的代码(这只是捕获Camera而不是NetStream)。
package media
{
import flash.media.Camera;
import flash.media.Video;
import mx.controls.VideoDisplay;
import mx.core.UIComponent;
public class VideoUI extends UIComponent
{
private var video:Video;
public function VideoUI(width:int, height:int)
{
super();
video = new Video(width, height);
var cam:Camera = Camera.getCamera();
video.attachCamera(cam);
addChild(video);
}
}
}
另一部分,
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import media.VideoUI;
private function addVideoOutput():void
{
// initial video size
var video:VideoUI = new VideoUI(160,120);
HBoxVideo.addChild(video);
}
protected function resizeVideo(event:MouseEvent):void
{
var videoList:Array = HBoxVideo.getChildren();
for (var i:int = 0; i < videoList.length; i++)
{
var video:VideoUI = videoList.pop();
HBoxVideo.removeChild(video);
// new size that produce the previous size :(
video = new VideoUI(320, 240);
HBoxVideo.addChild(video);
}
}
]]>
</mx:Script>
<mx:Button click="addVideoOutput()" x="10" y="265" label="add"/>
<mx:HBox x="10" y="10" width="100%" id="HBoxVideo">
</mx:HBox>
<mx:Button x="58" y="265" label="resize" click="resizeVideo(event)" id="resizeButton"/>
</mx:Application>
非常感谢。
答案 0 :(得分:0)
默认情况下,Video类的新实例是320像素宽,240像素高。您需要访问 VideoUI 类中的视频,以便更改宽度和高度。< / p>
如下:
将VideoUI.as中 video 变量的所有外观更改为
_video
并使用吸气剂。
新视频用户界面
package media
{
import flash.media.Camera;
import flash.media.Video;
import mx.core.UIComponent;
public class VideoUI extends UIComponent
{
private var _video:Video;
public function VideoUI(width:int, height:int)
{
super();
_video = new Video(width, height);
var cam:Camera = Camera.getCamera();
_video.attachCamera(cam);
addChild(_video);
}
public function get video():Video{
return _video;
}
}
}
替换您的主要mxml文件
video = new VideoUI(320, 240);
与
video.video.width=320;
video.video.height=240;
注意:您应该将 VideoUI 实例重命名为 videoui 或排序。这有点令人困惑。您也可以将其移动到VideoUI类或制作方法。选择是你的。