2009-09-21 1 views
2

Я создал видеопроигрыватель, но вам нужно добавить кнопку, которая при щелчке переводит видео в полноэкранный режим просмотра. Я не хочу масштабировать все на сцене - просто видео. Кажется, я не могу найти, как это сделать - я думал, что это будет легко.as3 video full screen mode

ответ

1

Мое понимание заключается в том, что вы можете установить только пол в полноэкранном режиме, а не элементы выборочно, поскольку вы эффективно масштабируете объект сцены в корне дерева отображения. Лучший способ добиться эффекта, который вы ищете, - это организовать/скрыть/показать любые объекты, которые вы не хотите видеть в обработчике событий FullScreenEvent.FULL_SCREEN.

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/events/FullScreenEvent.html

Кроме того, соответствующая пикантный из документации Stage, displayState section:

Масштабное поведение фильма в полноэкранном режиме определяется настройкой ScaleMode (устанавливаются с помощью Stage. scaleMode или вставки тегов SWF-файла в файл HTML). Если для свойства scaleMode установлено значение noScale, когда приложение переходит в полноэкранный режим, обновляются свойства ширины и высоты сцены, а также событие Stage resize.

2

Смотрите, если это работает:

stage.displayState = StageDisplayState.FULL_SCREEN; 
videoPlayer.x = 0; 
videoPlayer.y = 0; 
//save the width and height in temp vars 
//for restoring them later. 
videoPlayer.width = stage.fullScreenWidth; 
videoPlayer.height = stage.fullScreenHeight; 
+0

это правильно ... ^^^ – samccone

0

Если элементы на этапе масштабирования это звучит так, как будто вы используете свойство fullScreenRect, а не просто поручаете объект этапа для перехода в полноэкранный режим.

Amarghosh имеет правильный подход, но он может быть более гибким путем присоединения слушателя:

stage.addEventListener(Event.RESIZE, _onStageResize, false, 0, true); 
stage.displayState = StageDisplayState.FULL_SCREEN; 

private function _onStageResize(event:Event):void 
{ 
    if(stage.displayState == StageDisplayState.FULL_SCREEN) 
    { 
     // Proportionally resize your video to the stage's new dimensions 
     // i.e. set its height and width such that the aspect ratio is not distorted 
    } 
    else 
    { 
     // Restore the normal layout of your elements 
    } 
} 
1

Наткнулся этой проблемы в последнее время, и это работало как шарм. Поэтому поставим его здесь, если это поможет кому угодно.

код

Клиент Flex:

private function startFullScreen(event:MouseEvent):void 
{  
    videoHolder.removeChild(vid); //videoHolder is an spark VideoDisplay 
             Component 
    this.stage.addChild(vid);   
    this.stage.displayState = StageDisplayState.FULL_SCREEN; 
    oldWidth = vid.width;   //store old values required while going back 
    oldHeight = vid.height; 
    vid.width = this.stage.width; 
    vid.height = this.stage.height; 
    this.stage.addEventListener(FullScreenEvent.FULL_SCREEN,fullScreenHandler); 
} 
} 


/*  handler for Fullscreen  */ 
private function fullScreenHandler(event:FullScreenEvent):void 
{ 
    //This function is called when user presses Esc key 
    //on returning to normal state, add the video back 

    if(!event.fullScreen) 
    {    
     this.stage.removeChild(vid); 
     videoHolder.addChild(vid); 
     vid.width = oldWidth; 
     vid.height = oldHeight; 
     this.stage.removeEventListener(FullScreenEvent.FULL_SCREEN,fullScreenHandler) 
    } 
} 
0

Чтобы полноэкранный режим

var fullScreenButton:Button = new Button(); 
... 
addChild(fullScreenButton); 
fullScreenButton.addEventListener(MouseEvent.CLICK, fullScreenButtonHandler); 
... 
private function fullScreenButtonHandler(event:MouseEvent) 
{ 
    var screenRectangle:Rectangle = new Rectangle(video.x, video.y, video.width, video.height); 
    stage.fullScreenSourceRect = screenRectangle; 
    stage.displayState = StageDisplayState.FULL_SCREEN; 
} 

To Leave Полноэкранный режим

... 
stage.displayState = StageDisplayState.NORMAL; 
... 

Примечание: Вы также можете нажать побег ,

Источник: http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS44B1892B-1668-4a80-8431-6BA0F1947766.html

+0

Но здесь вы не изменение размера видеоплеер !!!? – akmozo