Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Ошибка 1180. Синхронное проигрывание двух видероликов через flvPlayback (http://www.flasher.ru/forum/showthread.php?t=208254)

mariamarfi 21.06.2014 23:55

Ошибка 1180. Синхронное проигрывание двух видероликов через flvPlayback
 
Вложений: 2
Доброго вечера, форумчане! Как сделать синхронное воспроизведение двух или несколько видероликов? У меня выдалась ошибка...

Error
строка 1 1180: Вызов предположительно неопределенного метода addFrameScript.

MainPanel_2.as
Код AS3:

package 
{
        import flash.net.URLLoader;
        import flash.net.URLRequest;
        import flash.events.Event;
        import flash.events.MouseEvent;
        import fl.video.FLVPlayback;
        import flash.display.Sprite;
        import flash.events.TimerEvent;
        import flash.utils.Timer;
 
        public class MainPanel_2 extends Sprite
        {
                private var _counter:uint = 0;
                private var _videoIndex:uint = 0;
                private var _myXml:XML;
                private var _myLoader:URLLoader = new URLLoader();
                private var _playStopFlag:Boolean = false;
                private var _timer: Timer;
                private var _duration:Number;
                private var _volume:Number = 100;
 
                public function MainPanel_2()
                {
                        _timer = new Timer(100);
                        _timer.addEventListener(TimerEvent.TIMER, _handlerOnPlaying);
                        _timer.start();
                        nav.predButton.addEventListener(MouseEvent.CLICK, _handlerPrevVideo);
                        nav.nextButton.addEventListener(MouseEvent.CLICK, _handlerNextVideo);
                        nav.playPauseButton.addEventListener(MouseEvent.CLICK, _handlerPlayPause);
                        nav.playPauseButton.addEventListener(MouseEvent.MOUSE_OVER, _handlerMouseOver);
                        nav.playPauseButton.addEventListener(MouseEvent.MOUSE_OUT, _handlerMouseOut);
                        nav.playPauseButton.buttonMode = true;
                        nav.volumeControl.volumeDownBtn.addEventListener(MouseEvent.CLICK, _handlerVolumeMinus);
                        nav.volumeControl.volumeUpBtn.addEventListener(MouseEvent.CLICK, _handlerVolumePlus);
                        v1.addEventListener(fl.video.MetadataEvent.METADATA_RECEIVED, _handlerMetadataRecived);
                        v2.addEventListener(fl.video.MetadataEvent.METADATA_RECEIVED, _handlerMetadataRecived);
                        _myLoader.addEventListener(Event.COMPLETE, _handlerLoaded);
                        _myLoader.load(new URLRequest("xmls/videos_azbuka_para_glas_2.xml"));
                }
                private function _handlerLoaded(event: Event):void{
                        _myXml = XML(event.target.data);
                        _videoIndex = _myXml.video.length() - 1;
                        _centerAlignAndPlay();
                }
                private function _handlerPrevVideo(event:MouseEvent):void{
                        if (_counter>0){
                                _counter--;
                                _centerAlignAndPlay();
                        }else{
                                _counter = 3;
                                _centerAlignAndPlay();
                        }
                }
 
                private function _handlerNextVideo(event:MouseEvent):void{
                        if (_counter<_videoIndex){
                                _counter++;
                                _centerAlignAndPlay();
                        }else{
                                _counter = 0;
                                _centerAlignAndPlay();
                        }
                }
 
                private function _centerAlignAndPlay():void
                {
                        v1.source = _myXml.video[_counter]. @ movie;
                        //v1.width = _myXml.video[_counter]. @ width;
                        //v1.height = _myXml.video[_counter]. @ height;
                        v1.x = 21;
                        v1.y = 105;
                        title_1.text = _myXml.video[_counter]. @ title;
 
                        v2.source = _myXml.video[_counter]. @ movie;
                        //v2.width = _myXml.video[_counter]. @ width;
                        //v2.height = _myXml.video[_counter]. @ height;
                        v2.x = 480;
                        v2.y = 105;
                        title_2.text = _myXml.video[_counter]. @ title;
 
                        nav.playPauseButton.gotoAndStop("Pause");
                        _playStopFlag = false;
 
 
 
                }
                private function _handlerMetadataRecived(event:fl.video.MetadataEvent):void{
                        _duration = Math.floor(v1.metadata["duration"]);
                        var detik: Number = Math.floor(_duration);
                        var menit: Number = Math.floor(detik / 60);
 
                        detik %= 60;
                        menit %= 60;
 
                        var display_detik: String = "";
                        var display_menit: String = "";
 
                        if (detik < 10){
                                display_detik = "0" + detik;
                        }else{
                        display_detik = "" + detik;
                        }       
                        if (menit < 10){
                        display_menit = "0" + menit;
                        }else{
                        display_menit = "" + menit;
                        }
                        nav.TimeDisplay.duration_time.text = display_menit + ":" + display_detik;
 
                }
 
                //=============================================//
 
 
                private function _handlerPlayPause(event:MouseEvent):void{
                        if(!_playStopFlag){
                                v1.pause();
                                v2.pause();
                                nav.playPauseButton.gotoAndStop("PlayOver");
                        }else{
                                v1.play();
                                v2.play();
                                nav.playPauseButton.gotoAndStop("PauseOver");
                        }
                        _playStopFlag = !_playStopFlag;
                }
                private function _handlerMouseOver(event:MouseEvent):void{
                        if(!_playStopFlag){
                                nav.playPauseButton.gotoAndStop("PauseOver");
                        }else{
                                nav.playPauseButton.gotoAndStop("PlayOver");
                        }
                }
                private function _handlerMouseOut(event:MouseEvent):void{
                        if(!_playStopFlag){
                                nav.playPauseButton.gotoAndStop("Pause");
                        }else{
                                nav.playPauseButton.gotoAndStop("Play");
                        }
                }
                private function _handlerVolumeMinus(event:MouseEvent):void{
                        if(_volume > 0){
                                _volume -= 10;                               
                        }else{
                                _volume = 0;
                        }
 
                        v1.volume =  _volume/100;
                        v2.volume =  _volume/100;
                        nav.volumeControl.volume_info.text = String(_volume) + "%";
                }
                private function _handlerVolumePlus(event:MouseEvent):void{
                        if(_volume < 100){
                                _volume += 10;
                        }else{
                                _volume = 100;
                        }
                        v1.volume =  _volume/100;
                        v2.volume =  _volume/100;
                        nav.volumeControl.volume_info.text = String(_volume) + "%";
                }
 
                private function _handlerOnPlaying(event: TimerEvent):void{
                        var detik: Number = Math.floor(v1.playheadTime);
                        var menit: Number = Math.floor(detik / 60);
 
                        detik %= 60;
                        menit %= 60;
 
                        var display_detik: String = "";
                        var display_menit: String = "";
 
                        if (detik < 10){
                                display_detik = "0" + detik;
                        }else{
                        display_detik = "" + detik;
                        }
                        if (menit < 10){
                        display_menit = "0" + menit;
                        }else{
                        display_menit = "" + menit;
                        }       
 
                        nav.TimeDisplay.played_time.text = display_menit + ":" + display_detik;
                        nav.SeekBar.slider_item.width = (v1.playheadTime / _duration)*200;
                        if (v1.playheadTime >= _duration){
 
                        v1.pause();
                        v1.seek(0);
 
                        v2.pause();
                        v2.seek(0);
 
                        nav.SeekBar.slider_item.width = 200;
                        _playStopFlag = true;
                        nav.playPauseButton.gotoAndStop("Play");
                        }
                }
        }
}

XML:
Код:

<?xml version="1.0" encoding="utf-8"?>

<videos>
        <video_tv movie="my_videos/azbuka/1_a.flv" title="А"  width="500" height="281" />
        <video_tv movie="my_videos/azbuka/31_e.flv" title="Э" width="500" height="281" />
        <video_tv movie="my_videos/azbuka/16_o.flv" title="О" width="500" height="281" />       
        <video_tv movie="my_videos/azbuka/29_y.flv" title="Ы" width="500" height="281" />
        <video_tv movie="my_videos/azbuka/21_u.flv" title="У" width="500" height="281" />
</videos>

<videos>
        <video_m movie="my_videos/azbuka/33_ya.flv" title="Я" width="500" height="281" />
        <video_m movie="my_videos/azbuka/6_ye.flv" title="Е" width="500" height="281" />
        <video_m movie="my_videos/azbuka/7_yo.flv" title="Ё" width="500" height="281" />
        <video_m movie="my_videos/azbuka/10_i.flv" title="И" width="500" height="281" /> 
        <video_m movie="my_videos/azbuka/32_yu.flv" title="Ю" width="500" height="281" />
</videos>


mariamarfi 08.07.2014 18:24

Что за метод addFrameScript? - не пойму я...

Я чувствую, проблема в XML, но пока не могу разобраться...

на флэше два ролика, одновременно они проигрываются. В одном ролике проигрываются те видеофайлы из одного блока XML, в другом - из другого блока. Как сделать так, чтобы они в таком порядке проигрываются:
например, А-Я, О-Ё, У-Ю, ...

samana 08.07.2014 18:36

Цитата:

Что за метод addFrameScript?
Это программное добавление кода в кадр мувиклипа, так же как можно написать код в кадре в среде FlashIDE.
У вас в пером кадре на сцене написан код, хоть он и закомментирован. А так как ваш документ класс наследуется от Sprite, у которого нет кадров, то код в кадре на сцене и вызывает ошибку.

Nooob 09.07.2014 00:41

нужно наследоваться от MovieClip
Код AS3:

import flash.display.MovieClip;
public class MainPanel_2 extends MovieClip

если хочешь и в кадрах код и в классе

и по спецификации XML допустима только одна корневая нода документа
Код:

<?xml version="1.0" encoding="utf-8"?>
<videos>
        <video_tv movie="my_videos/azbuka/1_a.flv" title="А"  width="500" height="281" />
        <video_tv movie="my_videos/azbuka/31_e.flv" title="Э" width="500" height="281" />
        <video_tv movie="my_videos/azbuka/16_o.flv" title="О" width="500" height="281" />       
        <video_tv movie="my_videos/azbuka/29_y.flv" title="Ы" width="500" height="281" />
        <video_tv movie="my_videos/azbuka/21_u.flv" title="У" width="500" height="281" />
        <video_m movie="my_videos/azbuka/33_ya.flv" title="Я" width="500" height="281" />
        <video_m movie="my_videos/azbuka/6_ye.flv" title="Е" width="500" height="281" />
        <video_m movie="my_videos/azbuka/7_yo.flv" title="Ё" width="500" height="281" />
        <video_m movie="my_videos/azbuka/10_i.flv" title="И" width="500" height="281" /> 
        <video_m movie="my_videos/azbuka/32_yu.flv" title="Ю" width="500" height="281" />
</videos>



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

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