Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 如何调整视频大小_Flash_Actionscript 3_Video_Osmf - Fatal编程技术网

Flash 如何调整视频大小

Flash 如何调整视频大小,flash,actionscript-3,video,osmf,Flash,Actionscript 3,Video,Osmf,我正在构建一个具有两种可切换尺寸的播放器,由用户更改,但我没有结果 这是我的setupPlayer函数,工作正常: function setupPlayer():void { layout.width = _playerWidth; layout.height = _playerHeight; layout.layoutMode = LayoutMode.HORIZONTAL layout.hor

我正在构建一个具有两种可切换尺寸的播放器,由用户更改,但我没有结果

这是我的setupPlayer函数,工作正常:

function setupPlayer():void
{

            layout.width  = _playerWidth;
            layout.height = _playerHeight;
            layout.layoutMode = LayoutMode.HORIZONTAL
            layout.horizontalAlign = HorizontalAlign.CENTER;
            layout.verticalAlign = VerticalAlign.TOP;
            layout.scaleMode = ScaleMode.LETTERBOX;

            videoElement.addMetadata(LayoutMetadata.LAYOUT_NAMESPACE, layout);
            videoElement.smoothing = true;

            mediaPlayer.loop = false;
            mediaPlayer.autoPlay = _autoPlay;             
            mediaContainer.addMediaElement(videoElement);
            videoCanvas.addChild(mediaContainer);       

               .... // more code //
}  
然后,我喂球员,它开始正常发挥,这是当我试图调整它的大小。(我确实在某个地方读到我需要更改LayoutMetadata),但没有效果:

public function resize(width:Number, height:Number):void
{
            // none of this worked
            //mediaContainer.width = 1200;
            //mediaContainer.height = 2000;
            //mediaContainer.layout(1200, 2000, true);


            // neither this
            var layout:LayoutMetadata = new LayoutMetadata();
            layout.width  = 1500;
            layout.height = 1500;
            layout.layoutMode = LayoutMode.HORIZONTAL
            layout.horizontalAlign = HorizontalAlign.CENTER;
            layout.verticalAlign = VerticalAlign.TOP;
            layout.scaleMode = ScaleMode.STRETCH;

            videoElement.removeMetadata(LayoutMetadata.LAYOUT_NAMESPACE)
            videoElement.addMetadata(LayoutMetadata.LAYOUT_NAMESPACE, layout);
}
有人能指出我的错误在哪里吗


谢谢

不要设置VideoElement的宽度和高度属性,而是将MediaContainer的宽度和高度分别设置为_playerWidth和_playerHeight。尝试下面的代码,看看它是否解决了您的问题

function setupPlayer():void
{

            mediaContainer.width = _playerWidth;
            mediaContainer.height = _playerHeight;

            layout.layoutMetadata.percentWidth = 100;
            layout.layoutMetadata.percentHeight = 100;
            layout.scaleMode = ScaleMode.LETTERBOX;

            videoElement.addMetadata(LayoutMetadata.LAYOUT_NAMESPACE, layout);
            videoElement.smoothing = true;

            mediaPlayer.loop = false;
            mediaPlayer.autoPlay = _autoPlay;             
            mediaContainer.addMediaElement(videoElement);
            videoCanvas.addChild(mediaContainer);       

               .... // more code //
}

public function resize(width:Number, height:Number):void
{
            // none of this worked
            mediaContainer.width = 1200;
            mediaContainer.height = 2000;
}

这起作用了,我必须更改mediaContainer维度,并为我当前的videoElement定义一个新的layoutMetadata:

public function resize(width:Number, height:Number):void
{
            mediaContainer.width  = width;
            mediaContainer.height = height;

            var layout:LayoutMetadata = new LayoutMetadata();
            layout.width  = width;
            layout.height = height;
            layout.layoutMode = LayoutMode.HORIZONTAL;
            layout.horizontalAlign = HorizontalAlign.CENTER;
            layout.verticalAlign = VerticalAlign.TOP;
            layout.scaleMode = ScaleMode.STRETCH;

            videoElement.removeMetadata(LayoutMetadata.LAYOUT_NAMESPACE);
            videoElement.addMetadata(LayoutMetadata.LAYOUT_NAMESPACE, layout);
}

我知道了如何正确地做到这一点,我需要更改mediaContainer并设置一个新的layouMetadata。