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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 07.07.2010, 17:18
Eric Gurt вне форума Посмотреть профиль Отправить личное сообщение для Eric Gurt Посетить домашнюю страницу Eric Gurt Найти все сообщения от Eric Gurt
  № 1  
Ответить с цитированием
Eric Gurt
 
Аватар для Eric Gurt

Регистрация: Oct 2006
Адрес: https://twitter.com/Eric_Gurt
Сообщений: 393
Arrow Event при проигрывании Video до конца (с NetConnection)

Цель такова - вызвать функцию completePlay при полном проигрывании видеоролика. Почему этого не происходит?:

Код AS3:
import fl.video.*;
 
stop();
 
var video:Video = new Video();
var nc:NetConnection = new NetConnection();
var ns:NetStream;
 
function startVideo():void
{
 
	addChild(video);
 
	nc.connect(null);
	ns = new NetStream(nc);
	ns.client = {onMetaData:ns_onMetaData, NetStatusEvent:ns_onPlayStatus};
 
 
	video.attachNetStream(ns);
	ns.play("intro.flv");
 
	video.addEventListener(VideoEvent.STOPPED_STATE_ENTERED, completePlay);
 
	video.smoothing = true;
 
	video.width=800;
	video.height=400;
}
startVideo();
 
function completePlay(evt:VideoEvent):void
{
	trace("1");
	gotoAndStop("menu");
 
}
function ns_onMetaData(event):void
{
	trace("2");
}
function ns_onPlayStatus(event):void
{
	trace("3");
}
При запуске видео проигрывается, вначале в Output выходит только:
Код:
2
После проигрывания черный экран (flv ролик заканчивается затуханием).
__________________
x << 2;

Старый 08.07.2010, 13:38
fljot вне форума Посмотреть профиль Отправить личное сообщение для fljot Найти все сообщения от fljot
  № 2  
Ответить с цитированием
fljot

блогер
Регистрация: Jul 2007
Сообщений: 940
Записей в блоге: 3
Нет тут таких событий http://livedocs.adobe.com/flex/3/lan...l#eventSummary

Надо слушать NetStatusEvent у NetStream'а с кодом NetStream.Play.Stop. Только учтите по крайнер мере 2 нюанса:
1. это можно словить при перемотке
2. в конце проигрывания netStream.time может быть меньше duration из metadata

Старый 08.07.2010, 13:54
masterflash вне форума Посмотреть профиль Отправить личное сообщение для masterflash Найти все сообщения от masterflash
  № 3  
Ответить с цитированием
masterflash

Регистрация: Dec 2009
Сообщений: 56
Код AS3:
NetStatusEvent.NET_STATUS

Старый 08.07.2010, 13:56
Eric Gurt вне форума Посмотреть профиль Отправить личное сообщение для Eric Gurt Посетить домашнюю страницу Eric Gurt Найти все сообщения от Eric Gurt
  № 4  
Ответить с цитированием
Eric Gurt
 
Аватар для Eric Gurt

Регистрация: Oct 2006
Адрес: https://twitter.com/Eric_Gurt
Сообщений: 393
Благодарю за совет. Перемотки быть не должно, так что дописал
Код AS3:
ns.addEventListener(NetStatusEvent.NET_STATUS, completePlay);
и
Код AS3:
function completePlay(evt):void
{
	if (evt.info.code=="NetStream.Play.Stop")
	{
		gotoAndStop("menu");
	}
 
}
Теперь все работает. Но не произойдет ли переход на другой кадр, если в этом случае где-то на середине проигрывания случится так что ролик остановится из-за того что вторая его часть не успела загрузиться?
__________________
x << 2;

Старый 08.07.2010, 20:55
fljot вне форума Посмотреть профиль Отправить личное сообщение для fljot Найти все сообщения от fljot
  № 5  
Ответить с цитированием
fljot

блогер
Регистрация: Jul 2007
Сообщений: 940
Записей в блоге: 3
нет, при этом будет NetStatusEvent с инфо-кодом NetStream.Buffer.Empty

Старый 08.07.2010, 22:41
Eric Gurt вне форума Посмотреть профиль Отправить личное сообщение для Eric Gurt Посетить домашнюю страницу Eric Gurt Найти все сообщения от Eric Gurt
  № 6  
Ответить с цитированием
Eric Gurt
 
Аватар для Eric Gurt

Регистрация: Oct 2006
Адрес: https://twitter.com/Eric_Gurt
Сообщений: 393
Вопросов нет - спасибо еще раз
__________________
x << 2;

Старый 15.07.2010, 02:25
loover вне форума Посмотреть профиль Отправить личное сообщение для loover Найти все сообщения от loover
  № 7  
Ответить с цитированием
loover
 
Аватар для loover

Регистрация: Mar 2009
Сообщений: 357
а как правильно реализовать автоповтор? вызывать play(movie.flv) опять? не будет ли в этом случае видео опять загружаться (извлекаться из кэша)?

можно ли проиграть видео задом-наперед?

грузится ли все видео в память? если да, то как ее можно очищать?


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

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

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


 


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


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