Как сделать так, чтобы видеоплеер Actionscript на базе Netstream автоматически изменял размер в соответствии с родительским размером? - PullRequest
0 голосов
/ 09 марта 2011

(Я новичок в Actionscript, и мне жаль, если это простой вопрос.)

Я выполняю медиаплеер в Actionscript, и у меня следующая иерархия классов:

  • Основной класс, расширяет Sprite и содержит
    • Класс VideoPlayer, расширяет Sprite, содержит объект Video и загружает видео с помощью Netstream

Видеоплеер будет встроен в разные приложения с контейнерами разных размеров. Есть ли способ заставить видео проигрыватель изменить размер в соответствии с размером родительского контейнера (как определено в html / swfobject)?

Я играл со свойствами scaleMode в классе Main, и мне удалось изменить масштабирование флэш-объекта в соответствии с контейнером, но размер видео всегда был одинаковым.

Кроме того, я изменил свойства "width" и "height" объекта Video как вручную, так и автоматически, используя метаданные видеоклипа, и размеры видео кажутся неправильными - у меня есть swfobject с 320x240 и когда Я изменил размер видео, чтобы оно соответствовало размеру swfobject, оно оказалось намного меньше, чем 320x240.

Заранее спасибо за помощь.

1 Ответ

0 голосов
/ 18 мая 2012

попробуйте что-то вроде этого

// get the video aspect ratio
// 1.33 (4/3)  | 640 x 480
// 1.77 (16/9) | 854 x 480
//trace(_video_width / _video_height);
videoAspectRatio    = _video_width / _video_height;

// check if video is larger than stage
// check which is larger: height or width
// set video size as the largers of height or width

// if video is a 4/3 aspect ratio
if( videoAspectRatio  < 1.4)
{
    myVideo.width   = _stageWidth / videoAspectRatio;   
    myVideo.height  = myVideo.width / videoAspectRatio;

    // if movie is still to small to the stage make it bigger
    if(myVideo.height < _stageHeight)
    {
            myVideo.width = myVideo.width * (_stageHeight/myVideo.height);
            myVideo.height = _stageHeight
    }
}
else
{
    myVideo.width   = _stageWidth;
    myVideo.height  = _stageWidth / videoAspectRatio;
}
...