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

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

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

Регистрация: Aug 2010
Сообщений: 26
По умолчанию Самопальный проигрыватель

Господа хорошие! Помогите старичку, уже хреновато соображаю, чтобы вглубь материй лезть. Хочу сделать видеопроигрыватель простой, как яйцо, для проигрывания рядом лежащих файлов типа f4v, flv . Компонент соответствующий уж больно тяжел, да ещё и скины за собой тянет, взял я примеры из CS5 FLash бросил прозрачный прямоугольник для экрана и 2 кнопки play и pause с одинаковыми координатами,
потом слепил код:

Код AS3:
var flag = true;
button2.visible = false;
 
var NC:NetConnection = new NetConnection();
NC.connect(null); 
var NS:NetStream = new NetStream(NC);
NS.client = {};
var Vid:Video = new Video();
Vid.attachNetStream(NS);
addChild(Vid);
 
button1.addEventListener(MouseEvent.CLICK, MouseClickHandler1);
function MouseClickHandler1(event:MouseEvent):void
{	if(!flag)NS.togglePause() else{
		NS.play("file.f4v");
		flag = false;
	}
	button1.visible = false;
	button2.visible = true;
}
button2.addEventListener(MouseEvent.CLICK, MouseClickHandler2);
function MouseClickHandler2(event:MouseEvent):void
{	NS.togglePause();
	button1.visible = true;
	button2.visible = false;
	var flag = true;
}
Всё вроде заработало, и swf-ка получилась чуть больше 2 кило. Но для полного счастья не хватает возможности следить за прогрессом при проигрывании, ну хотя бы конец воспроизведения поймать и с ним помудрить. 2 дня промучился, а потом вспомнил, что есть у нас корифеи, для которых это семечки


Последний раз редактировалось acherny; 26.08.2010 в 11:45.
Старый 26.08.2010, 09:24
kackbip вне форума Посмотреть профиль Отправить личное сообщение для kackbip Найти все сообщения от kackbip
  № 2  
Ответить с цитированием
kackbip
 
Аватар для kackbip

Регистрация: Sep 2007
Адрес: Tomsk
Сообщений: 943
Отправить сообщение для kackbip с помощью ICQ Отправить сообщение для kackbip с помощью Skype™
Для отслеживания прогресса воспроизведения обращайтесь к NetStream#time
Конец же поймать не очень просто. События никакого на окончание проигрывания видео нету.

Старый 26.08.2010, 11:30
acherny вне форума Посмотреть профиль Отправить личное сообщение для acherny Найти все сообщения от acherny
  № 3  
Ответить с цитированием
acherny

Регистрация: Aug 2010
Сообщений: 26
Благодарю за ответ. Покопаюсь.

Добавлено через 35 минут
Да NetStream.time даёт текущее время. Но штатный компонент проигрывателя “знает” сразу вначале общее время. Откуда он его берёт?

Добавлено через 1 час 2 минуты
Не получается загнать текущее значение NetStream#time в Label, компилятор обругал все мои попытки...

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

Регистрация: Aug 2010
Сообщений: 26
Почитал кое-что и вроде в первом приближении получил то, чо хотел (swf - 2.45 kb)
Код AS3:
 
var flag = true;
button2.visible = false;
 
var NC:NetConnection = new NetConnection();
NC.connect(null);
 
var NS:NetStream = new NetStream(NC);
NS.client = {};
 
var Vid:Video = new Video();
Vid.attachNetStream(NS);
addChild(Vid);
 
button1.addEventListener(MouseEvent.CLICK, MouseClickHandler1);
function MouseClickHandler1(event:MouseEvent):void
{
	if (! flag)
	{
		NS.togglePause();
	}
	else
	{
		NS.play("yourfile.f4v");
		flag = false;
	}
	button1.visible = false;
	button2.visible = true;
}
 
button2.addEventListener(MouseEvent.CLICK, MouseClickHandler2);
function MouseClickHandler2(event:MouseEvent):void
{
	NS.togglePause();
	button1.visible = true;
	button2.visible = false;
	var flag = true;
}
 
NS.addEventListener(NetStatusEvent.NET_STATUS, statusHandler);
function statusHandler(event:NetStatusEvent):void
{
	{
		switch (event.info.code)
		{
			case "NetStream.Play.Stop" :
				button1.visible = true;
				button2.visible = false;
				flag = true;
				break;
		}
	}
};
Жду конструктивной критики...

Создать новую тему Ответ Часовой пояс GMT +4, время: 18:02.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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