Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Свои кнопки поверх FLVplayback при Fullscreen (http://www.flasher.ru/forum/showthread.php?t=183743)

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+


Часовой пояс GMT +4, время: 15:51.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.