Форум 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=130923)

Wlspartak 08.10.2009 18:09

Последовательная загрузка мувиков из библиотеки
 
Имеется в библиотеке 8 мувиков(mar1 - mar8)
Нужно чтоб приаттачить и проиграть все по порядку. Моих знаний хватило на такой код. Проигрывается только последний(mar8) мувик. Чего не хватает и что не так? Спасибо.
Код AS1/AS2:

var n=0;
for(var i=0; i<=8; i+=1){
var mc:MovieClip;
mc = my_mc.attachMovie("mar"+n, "mar"+n, getNextHighestDepth());
n++;
 
mc.onEnterFrame = function():Void  {
        if (this._currentframe == this._totalframes) {
                this.stop();
                delete this.onEnterFrame;
        }
}
};


mooncar 08.10.2009 18:31

Ну хотя бы так сделайте:
Код AS1/AS2:

this["mar"+n].onEnterFrame =...

И объектную ссылку mc исключите, она не нужна тогда будет.

Wlspartak 09.10.2009 09:41

Результат тот же, проигрывается последний (8-й) мувик. Может как-то нужно отслеживать загрузку и завершение каждого мувика? Как это сделать?

true11 09.10.2009 11:36

Ммм логичнее было бы так:

Код AS1/AS2:

for(var i=1; i<=8; i++){
this.attachMovie("mar"+n, "mar"+n, getNextHighestDepth());
this["mar"]+n._visible=0; // Сразу делаем невидимым
}
// приаттачили. теперь функция, которая будет делать 1 мувик видимым
function showClip(val){
for(var i=1; i<=8; i++){
this["mar"+i]._visible=false; // Делаем все клипы невидимыми
}
this["mar"+val]._visible=true; //делаем нужный клип видимым
this["mar"+val].play(); // проигрываем его
}

В последний кадр каждого мувика добавляем код:

Код AS1/AS2:

_parent.showClip(xxx); // где xxx - номер следующего мувика.
stop();

чтобы не прописывать ручками все номера можно "вырезать" цифру с имени movieclip-a. чтото типа this._name.substring(2);

Запустить все это добро можно так:
в том клипе, куда аттачим пишем:
Код AS1/AS2:

showClip(1);

И понеслась)
Не тестил, но думаю идея ясна.

Wlspartak 09.10.2009 14:14

true11: Что-то не получается.
делал так:
в мувики добавил код
Код AS1/AS2:

_parent.showClip(2);// (на первом)
stop();
_parent.showClip(3);// (на втором)
stop();//и т.д.

в том клипе, куда аттачим (он у меня пустой)
Код AS1/AS2:

showClip(1);

а на строку:
Код AS1/AS2:

this["mar"]+n._visible=0; // Сразу делаем невидимым

выдается ошибка.


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

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