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

R_Flash 23.08.2009 19:10

Как узнать количество кадров в загруженном SWF?
 
Загружаю в созданный клип файл intro.swf через
Код AS1/AS2:

this.createEmptyMovieClip("intro_mc",0);
intro_mc.loadMovie("intro.swf");
trace("intro_mc._totalframes");

количество кадров выдает "1". Что в принципе логично. А как мне узнать количество кадров в файле intro.swf? Спасибо!.

mooncar 23.08.2009 19:33

Попробуйте сделать правильный код, грузите через MoviClipLoader.Так как AS асинхронно работает, возможно строчка
Код AS1/AS2:

trace(intro_mc._totalframes);

уже выполняется, когде еще клип не успел подгрузиться...

Организуйте загрузку через MoviClipLoader и в методе onLoadInit напишите:
Код AS1/AS2:

myLoader.onLoadInit = function(target_mc:MovieClip) {
trace(target_mc._totalframes);
}

Не уверен, что сработает, проверьте сами. Если не получится, попробуйте для этих же целей использовать onLoadComplete.

PS. target_mc - это внутренний аргумент функции, передающий ссылку на загруженный клип, intro_mc вместо этого писать не нужно.

R_Flash 23.08.2009 19:39

через MovieClipLoader тоже не получилось

mooncar 23.08.2009 19:41

Сейчас посмотрим...

Добавлено через 2 минуты
Все отлично работает.
Код AS1/AS2:

var container:MovieClip = createEmptyMovieClip("container", getNextHighestDepth());
var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.addListener(this);
mcLoader.loadClip("stroichem1_2.swf", container);
 
function onLoadInit(mc:MovieClip) {
    trace (mc._totalframes);
}


R_Flash 23.08.2009 19:54

спасибо. Понял в чем моя ошибка.

Добавлено через 3 минуты
Единственно не понятно одно. В функции onLoadInit в качестве параметра есть клип mc как в него передается количество фреймов если он никак не привязан к клипу container в который непосредсвенно загружается SWF файл

mooncar 23.08.2009 20:02

Как это не привязан? Привязка идет через сам объект mcLoader, который знает, что именно в него пытаются загрузить.
mc - это аргумент-ссылка на загруженный объект и из него можно извлечь все его свойства - количество кадров, размеры, альфу, и т.д.
Поэтому все операции с загруженным можно начинать только изнутри метода onLoadInit, ткогда файл гарантированно загружен.

R_Flash 23.08.2009 20:16

ну просто клип mc нигде кроме фнукции onLoadInit ни где явно не указывается. А если у меня несколько клипов загруженно через ClipLoader как функция поймет о каком именно клипе мне нужна информация? Прошу прощения за свою непонятливость,я чайник =)

mooncar 23.08.2009 20:23

Поймет, не волнуйтесь. Это внутренняя механика класса. Переменная mc - переменная функции, назначенной на onLoadInit, используется только внутри неё.

R_Flash 23.08.2009 20:31

Все заработало, спасибо, но я честно говоря не понял до конца всего прцесса. Буду разбираться


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

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