PDA

Просмотр полной версии : помогите "новичку"


RDA
08.05.2002, 14:37
Стою на асфальте я в лыжи обутый,
Толи лыжи не едут, толи я ...............
///или может надо больше спать :confused:

movieClip.onLoad - что это за чудо такое????

залажу в хелп и читаю
Description

Event handler; invoked when the movie clip is instantiated and appears in the Timeline.

Создаю клип, называю его myMovieClip

myMovieClip.onLoad = function () {
trace ("onLoad called");
};


а в ответ тишина......

???????

Nox Noctis
08.05.2002, 18:58
коэффицент трения асфальта или центростремительная сила вращения земли - что-то из этого надо поменять всего-то :)

у тебя судя по всему клип инициализируется раньше чем определяется онЛоадовая функция...

например
this.createEmptyMovieClip("ad_astra", 1);
ad_astra.onLoad = function() {
trace("??");
};
не сработает, что вполне логично...

а если так
this.createEmptyMovieClip("ad_astra", 1);
MovieClip.prototype.onLoad = function() {
trace("??");
};
это сработает, потому как функция определится раньше чем появится клип...

вариантов масса

>>> #initclip поможет вам и вашим детям :)

RDA
09.05.2002, 18:43
у тебя судя по всему клип инициализируется раньше чем определяется онЛоадовая функция...
На самом деле очень занятный вопросец!!!

//для размышления
есть клип myMovieClip
"уровнем выше код"

myMovieClip.onLoad = function () {
trace ("onLoad called");
};

Если написать

onClipEvent(load) {
trace("clipEvent load called");
}

Сработают оба (что вполне логично)
Самое интересное: если вместо onClipEvent......... поставить, скажем, // - myMovieClip.onLoad - сработает....

Собственно, с чего вдруг я полез в такие "дебри" :):):)
Задача простая: отловить onLoad клипа при attach-е
Внутри клипа написал
this.onLoad = function() {
trace("onLoad")
}
после чего засел в ступор (какого оно не пашет)

по поводу #initclip

#initclip 1
trace(this);
#endinitclip

Внимание вопрос!!!!
Как отловить onLoad при attach-е :confused:
зы не используя registerClass ;) ;) ;)

Nox Noctis
12.05.2002, 15:50
если без регистерКласса и передачи метода через прототип:

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

какие идеи:

можно в первом кадре приаттачиваемого клипа на один из клипов (на пустышку например) повесить онКлипЕвент(лоад) с вызовом какой-то внешней функции (через .apply(this, [...]) например)

можно откуда-нибудь снаружи следить за загруженностью приаттачиваемого клипа (например по онЕнтерФрейму того клипа, в который аттачишь)
простой как три рубля способ:
>> бла_бла_бла.аттачМуви("линк", "имя", глубина);
>> бла_бла_бла.имя.ready = true;
пишем это подряд, но переменная ready станет "видимой" только когда клип окончательно загрузится - и тогда запустить онлоадовую функцию...
хотя, пожалуй можно еще проще -
где нужно пишешь
if (бла_бла_бла.имя) {
......выполнить онлоад.......
}
...правда это уже не онЛоад а его эмуляция :)

вот...
возможно ничего нового я тебе не сообщил :) но мне кажется это самые простые варианты :)

RDA
12.05.2002, 16:08
Ну чтож, думаю, зарегистрировать класс, пусть даже и с одним методом, будет самым верным решением этой задачи ;)

/*
Интересно какая версия флеша будет лишена, всяких маленьких, и порой обидных "ляпов" и неопределенностей :)
*/

Спасибо!

Nox Noctis
12.05.2002, 17:32
о!
инитОбджектом можно ведь передать твой онлоад !....
...это ж гиперполезняшка в мыксе (правда глючит со стандартными свойствами _width и _height, но все равно) :D