Форум 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)
-   -   loadMovie: как отследить _currentframe загруженного swf-ролика? (http://www.flasher.ru/forum/showthread.php?t=115994)

Orbital 17.09.2008 18:43

loadMovie: как отследить _currentframe загруженного swf-ролика?
 
Код:


var movies=new Array(
    "intro1",
    "intro2"
    );
 
_root.createEmptyMovieClip("emc", _root.getNextHighestDepth());
for(var i=0; i<movies.length; i++)
{
    _root.emc.loadMovie(movies[i]+".swf");
    for(var j=0; j<_root.emc._totalframes; j++)
    {
        trace("Current: "+_root.emc._currentframe);
    }
}

Почему _root.emc._totalframes=1?

Ролики intro1.swf и intro2.swf присутствуют и загружаются.

MrPoma 17.09.2008 18:54

Грузите MovieClipLader'ом и проверяйте по onLoadInit.

Orbital 17.09.2008 19:20

Ок, переписал код с использованием MovieClipLoader:
Код:

stop();
var movies=new Array(
        "intro1",
        "intro2"
        );

_root.createEmptyMovieClip("emc", _root.getNextHighestDepth());

var loader:MovieClipLoader=new MovieClipLoader();
loader.addListener(this);
function onLoadInit(_mc:MovieClip)
{
        for(var i=0; i<_mc._totalframes; i++)
        {
                trace(_mc._currentframe);
        }
}

for(var i=0; i<movies.length; i++)
{
        loader.loadClip(movies[i]+".swf", _root.emc);
}

В результате получил 170 ноликов в output.

Как отслеживать _currentframe по мере проигрывания загруженного swf-ролика?
Как сделать так, чтобы каждый ролик проигрался до конца и после загружался следующий ролик из массива movies?

MrPoma 17.09.2008 19:40

А вы хотели получить значения от 1 до 170? Ну тогда nextFrame(), а потом trace(_currentFrame)

Orbital 17.09.2008 19:44

Отлично!
В output всё красиво, но ролик не проигрывается.

Наверное, я все-таки не оттуда копаю.
Ключевой вопрос: Как сделать так, чтобы каждый ролик проигрался до конца и после загружался следующий ролик из массива movies?

Код:

for(var i=0; i<_mc._totalframes; i++)
{
        trace(_mc._currentframe);
}

Почему _root.emc._totalframes = 0?
Загружаемые ролики ведь не пустые.

etc 17.09.2008 20:56

Так сначала надо дождаться загрузки, а потом уже трейсить.

Orbital 18.09.2008 02:31

Снабдите реальным примером, пожалуйста.

MrPoma 18.09.2008 03:37

Код:

function onLoadInit(mc:MovieClip){
        trace(mc._totalframes);
}


Mur4ik 18.09.2008 04:09

по первому посту:
Ваш цикл начинает выполняться когда еще swf не загрузился....
по третьему может как то так?
Код:

stop();
var movies:Array = new Array(
        "intro1",
        "intro2"
        );

_root.createEmptyMovieClip("emc", _root.getNextHighestDepth());

var loader:MovieClipLoader=new MovieClipLoader();

loader.addListener(this);

function onLoadInit(_mc:MovieClip):Void {
{
        _mc.onEnterFrame = function():Void {
                trace(this._currentframe);
                /* это на всякий случай можно и раскомментировать
                if (this._currentframe == this._totalframes) {
                      delete this.onEnterFrame;
                }
                */
        }
}

for(var i=0; i<movies.length; i++)
{
        loader.loadClip(movies[i]+".swf", _root.emc);
}



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

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