Поддержка полноэкранного режима

Версия ActionScript 3.0 компонента FLVPlayback поддерживает полноэкранный режим, для которого требуется проигрыватель Flash Player 9.0.28.0 или более поздней версии, а также правильная настройка HTML для полноэкранного просмотра. Некоторые предустановленные обложки включают в себя кнопку включения/выключения полноэкранного режима. Значок FullScreenButton отображается в правой части панели управления, как показано на рисунке ниже.

Значок полноэкранного режима на панели управления

Полноэкранный режим можно включить, только если свойство fullScreenTakeOver установлено на значение true , которое задается по умолчанию.

Полноэкранный режим поддерживается как при наличии, так и при отсутствии аппаратного ускорения. Сведения о поддержке аппаратного ускорения см. в разделе « Аппаратное ускорение ».

Реализация поддержки полноэкранного режима для компонента FLVPlayback:

  1. Добавьте компонент FLVPlayback в ваше приложение и назначьте ему видеофайл.

  2. Выберите обложку для компонента FLVPlayback, которая имеет кнопку полноэкранного режима (например, SkinUnderPlaySeekFullscreen.swf) или добавьте компонент пользовательского интерфейса FullScreenButton в компонент FLVPlayback из раздела «Видео» на панели «Компоненты».

  3. Выберите «Файл» > «Параметры публикации».

  4. В диалоговом окне «Параметры публикации» выберите вкладку «HTML».

  5. На вкладке «HTML» выберите пункт «Flash с поддержкой полноэкранного режима» во всплывающем меню «Шаблон».

  6. Также на вкладке «HTML» установите флажок «Определить версию Flash» и укажите версию 9.0.28 или более новую, в зависимости от версии используемого проигрывателя Flash Player.

  7. Выберите вкладку «Форматы» и убедитесь, что параметры Flash (.swf) и HTML (.html) выбраны. Можно заменить имена файлов по умолчанию.

  8. Нажмите «Опубликовать», затем кнопку «ОК».

    Вместо выполнения шага 7 вы можете нажать кнопку «ОК», затем выбрать «Файл» > «Просмотр публикации» > «По умолчанию — (HTML)», чтобы автоматически открыть экспортированный HTML-файл в обозревателе по умолчанию. Либо откройте экспортированный HTML-файл в обозревателе, чтобы протестировать полноэкранный режим.

    Чтобы вставить в веб-страницу компонент FLVPlayback с поддержкой полноэкранного режима, откройте экспортированный HTML-файл и скопируйте код, внедряющий SWF-файл в HTML-файл для вашей веб-страницы. Этот код должен выглядеть, как в следующем примере:

    //from the <head> section 
     
    <script language="javascript"> AC_FL_RunContent = 0; </script>  
    <script language="javascript"> DetectFlashVer = 0; </script>  
    <script src="AC_RunActiveContent.js" language="javascript"></script> 
    <script language="JavaScript" type="text/javascript">  
    <!--  
    // -----------------------------------------------------------------------------  
    // Globals  
    // Major version of Flash required  
    var requiredMajorVersion = 9;  
    // Minor version of Flash required  
    var requiredMinorVersion = 0;  
    // Revision of Flash required  
    var requiredRevision = 28;  
    // -----------------------------------------------------------------------------  
    // -->  
    </script>  
     
    //and from the <body> section 
     
    <script language="JavaScript" type="text/javascript">  
    <!--  
    if (AC_FL_RunContent == 0 || DetectFlashVer == 0) {  
        alert("This page requires AC_RunActiveContent.js.");  
    } else {  
        var hasRightVersion = DetectFlashVer(requiredMajorVersion, 
            requiredMinorVersion, requiredRevision);  
        if(hasRightVersion) { // if we&apos;ve detected an acceptable version  
            // embed the Flash movie  
            AC_FL_RunContent(  
                &apos;codebase&apos;, &apos;http://download.macromedia.com/pub/ 
                    shockwave/cabs/flash/swflash.cab#version=9,0,28,0&apos;,  
                &apos;width&apos;, &apos;550&apos;,  
                &apos;height&apos;, &apos;400&apos;, 
                &apos;src&apos;, &apos;fullscreen&apos;,  
                &apos;quality&apos;, &apos;high&apos;,  
                &apos;pluginspage&apos;, &apos;http://www.macromedia.com/go/ 
                    getflashplayer&apos;,  
                &apos;align&apos;, &apos;middle&apos;,  
                &apos;play&apos;, &apos;true&apos;,  
                &apos;loop&apos;, &apos;true&apos;,  
                &apos;scale&apos;, &apos;showall&apos;,  
                &apos;wmode&apos;, &apos;window&apos;,  
                &apos;devicefont&apos;, &apos;false&apos;,  
                &apos;id&apos;, &apos;fullscreen&apos;,  
                &apos;bgcolor&apos;, &apos;#ffffff&apos;,  
                &apos;name&apos;, &apos;fullscreen&apos;,  
                &apos;menu&apos;, &apos;true&apos;, 
                &apos;allowScriptAccess&apos;,&apos;sameDomain&apos;, 
                &apos;allowFullScreen&apos;,&apos;true&apos;,  
                &apos;movie&apos;, &apos;fullscreen&apos;,  
                &apos;salign&apos;, &apos;&apos; ); //end AC code  
        } else { // Flash is too old or we can&apos;t detect the plug-in.  
            var alternateContent = &apos;Alternative HTML content should be placed 
                    here.&apos;  
                + &apos;This content requires Adobe Flash Player.&apos;  
                + &apos;<a href=http://www.macromedia.com/go/getflash/>Get Flash</a> 
                        &apos;;  
            document.write(alternateContent); // Insert non-Flash content.  
        }  
    }  
    // -->  
    </script>  
    <noscript>  
        // Provide alternative content for browsers that do not support scripting  
        // or for those that have scripting disabled.  
        Alternative HTML content should be placed here. This content requires Adobe Flash Player.  
        <a href="http://www.macromedia.com/go/getflash/">Get Flash</a>  
    </noscript>

    В качестве альтернативы можно использовать экспортированный HTML-файл в качестве шаблона веб-страницы и добавлять в него другое содержимое. В этом случае следует изменить имя HTML-файла, чтобы случайно не перезаписать его при последующем экспорте HTML-файла FLVPlayback из Flash.

    В любом случае необходимо выгрузить на веб-сервер файл AC_RunActiveContent.js, который экспортируется в ту же папку, что и HTML-файл.

    Поддержка полноэкранного режима ActionScript включает в себя свойства fullScreenBackgroundColor , fullScreenSkinDelay и fullScreenTakeOver , а также метод enterFullScreenDisplayState() . Сведения об этих элементах ActionScript см. в справочнике ActionScript® 3.0 для Adobe® Flash® Professional CS5 .

Использование метода enterFullScreenDisplayState()

Включить полноэкранный режим можно также путем вызова метода ActionScript enterFullScreenDisplayState() , как показано в следующем примере.

function handleClick(e:MouseEvent):void { 
    myFLVPlybk.enterFullScreenDisplayState(); 
} 
myButton.addEventListener(MouseEvent.CLICK, handleClick);

В данном примере полноэкранный режим включается не нажатием кнопки включения/выключения полноэкранного режима на обложке компонента FLVPlayback, а нажатием кнопки (MyButton), которую автор веб-страницы включил в страницу для вызова полноэкранного режима. Нажатие этой кнопки инициирует обработчик событий handleClick , который вызывает метод enterFullScreen DisplayState() .

Метод enterFullScreenDisplayState() устанавливает свойство Stage.displayState на значение StageDisplayState.FULL_SCREEN и, следовательно, имеет те же ограничения, что и свойство displayState . Дополнительные сведения о методе enterFullScreenDisplayState() и свойстве Stage displayState см. в справочнике ActionScript® 3.0 для Adobe® Flash® Professional CS5 .

Аппаратное ускорение

Проигрыватель Flash Player 9.0.115.0 и более поздних версий включает в себя код, который использует доступные видеоустройства для повышения производительности и надежности FLV-файлов, воспроизводимых компонентом FLVPlayback в полноэкранном режиме. Если необходимые условия выполнены, и свойство fullScreenTakeOver установлено на значение true , проигрыватель Flash Player использует аппаратное ускорение для масштабирования видеофайла вместо программного масштабирования. Если компонент FLVPlayback выполняется в более ранней версии проигрывателя Flash Player, или если необходимые условия для аппаратного ускорения не существуют, проигрыватель Flash Player выполняет масштабирование видеофайла самостоятельно, как раньше.

Чтобы использовать аппаратное ускорение для поддержки полноэкранного режима, ваш компьютер должен иметь DirectX 7-совместимую видеокарту с VRAM (видео ОЗУ) 4 МБ или больше. Такая аппаратная поддержка доступна в Windows 2000 или Mac OS X 10.2 и в более поздних версиях этих операционных систем. Direct X® содержит набор API-интерфейсов, которые представляют собой интерфейс взаимодействия программного обеспечения и видеоустройства для ускорения трехмерной и двухмерной графики и реализации других возможностей.

Чтобы воспользоваться преимуществом режима аппаратного ускорения, необходимо вызвать полноэкранный режим одним из следующих способов:

  • При помощи кнопки включения/выключения полноэкранного режима на обложке компонента FLVPlayback.

  • При помощи элемента управления видео FullScreenButton.

  • При помощи метода ActionScript enterFullScreenDisplayState() . Дополнительные сведения см. в разделе « Использование метода enterFullScreenDisplayState() ».

    При вызове полноэкранного режима путем установки свойства Stage.displayState на значение StageDisplayState.FULLSCREEN компонент FLVPlayback не использует аппаратное ускорение даже при доступном видеоустройстве и памяти.

    Следствием использования аппаратного ускорения для поддержки полноэкранного режима является масштабирование обложек компонента FLVPlayback вместе с видеопроигрывателем и видеофайлом. Следующий рисунок иллюстрирует влияние полноэкранного режима с использованием аппаратного ускорения на обложку компонента FLVPlayback, фрагмент которой показан на этом рисунке при максимальном разрешении.

    Полноэкранный режим на мониторе с разрешением 1600x1200 пикселов и видео размером 320x240 пикселов
    Полноэкранный режим на мониторе с разрешением 1600x1200 пикселов и видео размером 320x240 пикселов

    На данном рисунке показан результат использования полноэкранного режима на экране с разрешением 1600 x 1200 точек с видеофайлом шириной 320 и высотой 240 пикселов, которые являются размерами компонента FLVPlayback по умолчанию. Искажение обложки более заметно при FLV-файлах с меньшими размерами на экранах с большим разрешением. И наоборот, искажение менее заметно при больших FLV-файлах на экранах с меньшим разрешением. Например, при увеличении размера с 640 x 480 до 1600 x 1200 пикселов размер обложки увеличивается, но искажения менее заметны.

    Для ограничения масштабирования обложки компонента FLVPlayback можно задать свойство skinScaleMaximum . Значением по умолчанию является 4.0, или 400 %. При ограниченном масштабировании обложки для масштабирования FLV-файла требуется сочетание аппаратных средств и программного обеспечения, что может отрицательно повлиять на исполнение FLV-файлов больших размеров с высокой скоростью потока. Если FLV-файл имеет большие размеры (например, ширина 640 пикселов или больше, высота 480 пикселов или больше), не следует устанавливать для свойства skinScaleMaximum низкие значения, так как это может привести к проблемам производительности на больших мониторах. Свойство skinScaleMaximum позволяет выбрать оптимальное соотношение между производительностью и качеством и внешним видом большой обложки.

Выход из полноэкранного режима

Для выхода из полноэкранного режима снова нажмите кнопку полноэкранного режима или клавишу Esc.

Задание следующих свойств и вызов следующих методов может повлечь за собой изменения макета, которые могут привести к выходу компонента FLVPLayback из полноэкранного режима: height , registrationHeight , registrationWidth , registrationX , registrationY , scaleX , scaleY , width , x , y , setScale() или setSize() .

При задании свойства align или свойства scaleMode компонент FLVPlayback устанавливает их на значения center и maintainAspectRatio соответственно до выхода из полноэкранного режима.

Изменение значения свойства fullScreenTakeOver с true на false при использовании полноэкранного режима с аппаратным ускорением также влечет за собой выход Flash из полноэкранного режима.