Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Action script 2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=49)
-   -   загрузка в _level# и getDepth() (http://www.flasher.ru/forum/showthread.php?t=52882)

Nox Noctis 19.12.2003 16:58

загрузка в _level# и getDepth()
 
либо я чего-то не понимаю, либо одно из двух..

вот такая конструкция:
Код:

this.onEnterFrame = function() {
        if (_level3) {
                delete this.onEnterFrame;
                trace(_level3.getDepth());
        }
};
loadMovieNum("load.swf", 3);

приводит к клинической смерти редактора.
он виснет, причем иногда намертво, приходится логоффиться чтобы его добить...

а если закомментировать строчку: trace(_level3.getDepth()); - редактор остается вживых :)

этот глюк есть только в редакторе МХ2004, в мыксе все отрабатывает нормально.

и если рабочекрестьянским способом отследить полную загрузку левела, то редактор не подвисает
Код:

loadMovieNum("load.swf", 3);
this.onEnterFrame = function() {
        var l = _level3.getBytesLoaded();
        var t = _level3.getBytesTotal();
        if (l && t && l>=t) {
                delete this.onEnterFrame;
                trace(_level3.getDepth());
        }
};

...работать будет. но это никоим образом не объясняет причину обвала в первом случае :)

в процессе ковыряния наткнулся на еще одну фишку..
мувы, загруженные в _level# кладутся на отрицательные глубины начиная с -16383 (глубина левела ноль + 1). по крайней мере так об этом сообщает getDepth(). если создать в таймлайне клипы, то запросто может получиться, что левел и вручную созданный клип получают одинаковую глубину... (опять же - по информации getDepth).

если потом вызвать createEmptyMovieClip на глубину равную глубине загруженного _level#, то клип, бывший на этой глубине, убьется, а левел - нет.

похоже что getDepth с левелами выдает враньё...

тем более что клипы созданные даже на положительной глубине в левеле ноль, все равно оказываются ПОД этим самым _level#...

такие дела :)
могу выложить исходник на котором я это все тестил, если надо...

llllllllll 19.12.2003 17:31

очень хорошие результаты выдаются :)

function GetInstanceAtDepth(obj){
for(var i in obj){
if(typeof obj[i] != "movieclip") continue;
trace(obj[i] + ":" + obj[i].getInstanceAtDepth(this.getDepth()+1) + ":" + (this.getDepth()+1));
GetInstanceAtDepth(obj[i]);
}
}

GetInstanceAtDepth(this)

Ну и наделать кучу вложенных мувиков на сцене, так вот после выполнения GetInstanceAtDepth(this) получаем что почти все они лежат на глубине -16383, хотя имеют строгий порядок :)

Nox Noctis 19.12.2003 17:45

хмм... бардак какой-та :)

я про АС1 говорил, но в АС2 надо полагать дела обстоят не лучше :)

llllllllll 19.12.2003 17:51

Цитата:

Оригинал написал(а) Nox Noctis
я про АС1 говорил, но в АС2 надо полагать дела обстоят не лучше :)
А зачем тада в этот раздел постил? :)

А вообще нет особой разницы , причем, то что касается глубин ничуть не изменилось с флеш4 (наксолько я понимаю), а ММ лишь дописывает нативы и API :)

Nox Noctis 19.12.2003 18:25

в этот раздел потому что
Цитата:

этот глюк есть только в редакторе МХ2004, в мыксе все отрабатывает нормально

llllllllll 21.12.2003 01:03

Чето я какуюто пургу прогнал :), что-то было там все же не так, но в данном случае ошибся я :)


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

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