| zerAlex2 |
31.08.2012 04:00 |
Свои кнопки поверх FLVplayback при Fullscreen
Не получается расположить кнопки поверх плеера в режиме Fullscreen.
Приложение локальное. SWF-ка запускается изначально в FullScreen режиме.
Спрайт собран в Flash IDE (пробовал обойтись кодом, нифига не вышло, нужен FLVplayback в библиотеке). В спрайте объекты (они не меняются местами даже при Fullscreen):
Цитата:
Layer_4: is-> [object MovieClip] name-> butPlay
Layer_3: is-> [object MovieClip] name-> butFull
Layer_2: is-> [object FLVPlayback] name-> player
Layer_1: is-> [object MovieClip] name-> videoMask
Layer_0: is-> [object Shape] name-> instance396
|
Код AS3:
package com {
import flash.display.Sprite;
import flash.events.*;
import flash.display.Loader;
import fl.video.*;
import fl.video.VideoEvent;
import fl.video.FLVPlayback;
import com.greensock.*;
import com.greensock.plugins.*;
import com.greensock.easing.*;
public class videoPlayer extends MovieClip {
private var videoFilePath :String;
private var playFlag :Boolean;
private var fullscreenFlag :Boolean;
public function videoPlayer(file:String) {// <-- Передаётся из parent
videoFilePath=file;
if (stage)
{
onStage();
}else{
this.addEventListener(Event.ADDED_TO_STAGE, onStage);
}
}
private function onStage(e:Event=null):void
{
this.player.fullScreenTakeOver = false;
this.player.autoPlay = false;
this.player.autoRewind=true;
this.player.skin = null;
this.player.width=985;
this.player.height=554;
this.player.addEventListener(Event.COMPLETE, completePlay);
this.player.playPauseButton=this.butPlay;// <-- Уже в спрайте
this.player.fullScreenButton=this.butFull;// <-- Уже в спрайте
this.player.source=videoFilePath;
this.playFlag=false;
this.butPlay.addEventListener(MouseEvent.CLICK, onClickPlayerButton);//Кнопка паузы\запуска видео
this.butFull.addEventListener(MouseEvent.CLICK, onClickFullButton);//Кнопка паузы\запуска видео
}
private function completePlay(e:Event):void
{
playFlag=!playFlag;
TweenMax.to(this.butPlay, 0.5, {alpha:1});
}
private function onClickFullButton(e:Event):void
{
trace("FULL_SCREEN");
this.player.fullScreenTakeOver = true;
this.player.enterFullScreenDisplayState();
var i:int = this.numChildren;
while(i--)
{
trace("Layer_"+i+": is-> "+getChildAt(i)+" name-> "+getChildAt(i).name);
}
//this.swapChildren(this.butPlay, this.player);// <-- Если раскоментировать, ругеается:
//this.swapChildren(this.butFull, this.player);// <-- И это:
//ArgumentError: Error #2025: Предоставленный DisplayObject должен
//быть дочерним элементом вызывающего объекта.
}
private function onClickPlayerButton(e:MouseEvent):void
{
if (playFlag)
{
trace("STOP");
//Остановить видео
player.pause();
TweenMax.to(this.butPlay, 0.5, {alpha:1});
}else{
trace("PLAY");
//Запустить видео
player.play();
TweenMax.to(this.butPlay, 0.5, {alpha:0});
}
playFlag=!playFlag;
}
}//
}//
Пробовал плее ложить в контейнер, а кнопки поверх. Результат тот же.
Или единственный вариант - это лепить скин? Очень не хочется....
Короче, пришлось делать полноразмерное видео, засовывать его в мувик и уже его размеры менять под нужды. Так и кнопи поверх ложатся любые на 5+
|