Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   как отследить конец видео (http://www.flasher.ru/forum/showthread.php?t=195099)

Bankomat 28.02.2013 11:55

как отследить конец видео
 
хочу по завершению видео, срабатывало действие какоето

в моем случаи видео запускается\управляется таким кодом
Код AS1/AS2:

stop();
 
var firstPress = true;
var nc:NetConnection = new NetConnection();
nc.connect(null);
var nStream:NetStream = new NetStream(nc);
_root.Bplay.videoObj.attachVideo(nStream);
var snd:Sound = new Sound();
this.createEmptyMovieClip("snd_mc", getNextHighestDepth());
_root.Bplay.videoObj.snd_mc.attachAudio(nStream);
nStream.setBufferTime(3);
ControlPanelVisible();
preloader._visible = false;
 
_root.Bplay.mc._play.onPress = pressPlay;
_root.Bplay.mc._pause.onPress = pressPause;
_root.Bplay.mc._sound_on.onPress = pressSoundOn;
_root.Bplay.mc._sound_off.onPress = pressSoundOff;
_root.Bplay.mc_link.onRelease = linkUrl;
this.onEnterFrame = enterFrame;
nStream.onStatus = statusVideo;
snd.setVolume(0);
function statusVideo(status:Object){
 
        if( status.code == "NetStream.Play.Stop" )
                nStream.stop(_root.video1);
 
 
 
 
}
 
function enterFrame(){
 
        if ( nStream.bytesLoaded > 0 ){
                preloader._visible = false;
                this.onEnterFrame = null;
 
        }
 
}
function linkUrl(){
 
        getURL(_root.link1, "_blank");
 
}
 
pressPlay();
 
function pressPlay(){
 
        if (firstPress){
                preloader._visible = true;
                nStream.play(_root.video1);
                firstPress = false;
 
 
        }
        nStream.pause(false);
        mc._play._visible = false;
        mc._pause._visible = true;
        _root.logo.play();
 
}
function pressPause(){
 
        nStream.pause(true);
        mc._pause._visible = false;
        mc._play._visible = true;
        _root.logo.stop();
 
}
function pressSoundOn(){
 
        snd.setVolume(100);
        mc._sound_on._visible = false;
        mc._sound_off._visible = true;
 
}
function pressSoundOff(){
 
        snd.setVolume(0);       
        mc._sound_off._visible = false;
        mc._sound_on._visible = true;
 
}
function ControlPanelVisible(){
 
        mc._play._visible = true;
        mc._pause._visible = false;
        mc._sound_on._visible = true;       
        mc._sound_off._visible = false;       
 
}

хочу что бы запускалось действие например _root.Bplay.fon.play();

ставлю это действие сюда

Код AS1/AS2:

        if( status.code == "NetStream.Play.Stop" )
                nStream.stop(_root.video1);
_root.Bplay.fon.play();

но оно почему то включается сразу...

mooncar 28.02.2013 12:41

Для начала вспомните про скобки у оператора if:
Код AS1/AS2:

if( status.code == "NetStream.Play.Stop" )
{
    nStream.stop(_root.video1);
}

Без этого при любом событии будет срабатывать.

dark256 28.02.2013 12:45

Попробуйте скомбинировать проверку с

NetStream.Buffer.Flush
status
Data has finished streaming, and the remaining buffer will be emptied.


Соотв. как-то так, чтоли:

Код AS1/AS2:

var itStop = false
if ( status.code == "NetStream.Play.Stop") itStop = true
if ( status.code == "NetStream.Buffer.Flush" && itStop )  поехали


Hauts 28.02.2013 12:47

Берете значение времени из метаданных видео и в onEnterFrame сравниваете с текущим значением времени не забывая об округлении, например, до десятых.

Или сравнивайте предыдущее значение времени воспроизведения видео и текущее. Если они некоторое время равны — значит видео остановилось. Но это имеет смысл только после полной загрузки видео и не когда видео стоит на паузе, конечно.

Bankomat 28.02.2013 13:07

Цитата:

Сообщение от mooncar (Сообщение 1122853)
Для начала вспомните про скобки у оператора if:
Код AS1/AS2:

if( status.code == "NetStream.Play.Stop" )
{
    nStream.stop(_root.video1);
}

Без этого при любом событии будет срабатывать.

спасибо) помогли


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

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