Просмотр полной версии : 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 присутствуют и загружаются.
Грузите MovieClipLader'ом и проверяйте по onLoadInit.
Ок, переписал код с использованием 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?
А вы хотели получить значения от 1 до 170? Ну тогда nextFrame(), а потом trace(_currentFrame)
Отлично!
В output всё красиво, но ролик не проигрывается.
Наверное, я все-таки не оттуда копаю.
Ключевой вопрос: Как сделать так, чтобы каждый ролик проигрался до конца и после загружался следующий ролик из массива movies?
for(var i=0; i<_mc._totalframes; i++)
{
trace(_mc._currentframe);
}
Почему _root.emc._totalframes = 0?
Загружаемые ролики ведь не пустые.
Так сначала надо дождаться загрузки, а потом уже трейсить.
Снабдите реальным примером, пожалуйста.
function onLoadInit(mc:MovieClip){
trace(mc._totalframes);
}
по первому посту:
Ваш цикл начинает выполняться когда еще 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);
}
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.