Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 21.06.2014, 23:55
mariamarfi вне форума Посмотреть профиль Отправить личное сообщение для mariamarfi Найти все сообщения от mariamarfi
  № 1  
Ответить с цитированием
mariamarfi

Регистрация: Mar 2012
Сообщений: 61
По умолчанию Ошибка 1180. Синхронное проигрывание двух видероликов через flvPlayback

Доброго вечера, форумчане! Как сделать синхронное воспроизведение двух или несколько видероликов? У меня выдалась ошибка...

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>
Вложения
Тип файла: rar Как синхронить проигрывание.rar (7.73 Мб, 32 просмотров)
Тип файла: swf Парные звуки 2.swf (323.8 Кб, 30 просмотров)

Старый 08.07.2014, 18:24
mariamarfi вне форума Посмотреть профиль Отправить личное сообщение для mariamarfi Найти все сообщения от mariamarfi
  № 2  
Ответить с цитированием
mariamarfi

Регистрация: Mar 2012
Сообщений: 61
Что за метод addFrameScript? - не пойму я...

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

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

Старый 08.07.2014, 18:36
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 3  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Цитата:
Что за метод addFrameScript?
Это программное добавление кода в кадр мувиклипа, так же как можно написать код в кадре в среде FlashIDE.
У вас в пером кадре на сцене написан код, хоть он и закомментирован. А так как ваш документ класс наследуется от Sprite, у которого нет кадров, то код в кадре на сцене и вызывает ошибку.

Старый 09.07.2014, 00:41
Nooob вне форума Посмотреть профиль Отправить личное сообщение для Nooob Найти все сообщения от Nooob
  № 4  
Ответить с цитированием
Nooob
 
Аватар для Nooob

Регистрация: Mar 2007
Сообщений: 319
нужно наследоваться от 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, время: 13:48.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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