簡體   English   中英

調整flash.media.Video的大小

[英]Resize flash.media.Video

我無法調整包裝flash.media.Video對象的自定義UIComponent大小(我之所以選擇這種方式,是因為mx.control.VideoDisplay不支持flash.media.Video中可用的流播放, attachNetStream() )。 一旦創建了320x240的Video尺寸並將其從其父級中移除,就無法再用另一個更大或更小的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>

非常感謝你。

默認情況下,Video類的新實例寬320像素,高240像素。 您將需要在VideoUI類中訪問視頻 ,以便可以更改寬度高度

如下:

將VideoUI.as中視頻變量的所有外觀更改為

_video

並應用吸氣劑。

新的視頻UI類

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類或創建方法。 這是你的選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM