Просмотр полной версии : Задание функций объъектам, которые будут расположены на timeline дальше
Muchacho
21.10.2005, 17:11
Предположим, создаю я проект, соблюдая принцип целостности кода (т.е., размещая код в одном месте.). Итак, размещаю я код в первом кадре проекта. Но трабл в том, что некоторые объекты, которым я задаю функции (например, реакции на щелчок мышкой), появляются только, в 20-м кадре, и дальше. Как мне решить эту задачу?
Я, конечно, могу сперва вычислять текущий кадр, например:
this.onEnterFrame=function () {
if (_currentframe>=13) {
butt.onMouseDown=function () {
trace(222);
}
}
}
но стоит мне при редактировании ролика переместить эти объекты на другие, более далёкие кадры, и эти команды перестают работать. Вот я и думаю, можно ли как-то перва определять, "появился ли" уже в фильме данный объект, или нет?
Muchacho
21.10.2005, 18:01
Сорри, похоже, всё работает и без всяких проверок, главное, что б функция находилась внутри обработчика onEnterFrame
Muchacho
21.10.2005, 19:13
Нет, не корректный это, похоже, способ. Ведь по-умолчанию, события кнопок, типа onRelease не зависят от частоты кадров, а теперь начинают зависеть.
Так как же задать события для объектов, которые лежат впереди по ходу фильма?
antonyrec
21.10.2005, 19:44
Фильм состоит из кадров. А как ты себе предсталяешь появление объекта между кадрами?
antonyrec
21.10.2005, 19:46
Ты нормальный способ написал.
this.onEnterFrame=function () {
if (butt!=undefined) {
butt.onMouseDown=function () {
trace(222);
}
}
}
Muchacho
24.10.2005, 19:27
Спасибо, Штрек, но по моему, будет ещё корректней так:
this.onEnterFrame=function () {
if ((butt!=undefined)&&(butt.onMouseDown==undefined)) {
butt.onMouseDown=function () {
trace(222);
}
}
}
Т.к. не придется в каждом кадре по-новой присваивать значение переменной.
this.onEnterFrame = function() {
if (butt != undefined) {
butt.onMouseDown = function() {
trace(222);
};
delete this.onEnterFrame;
}
};
onEnterFrame ваще не есть хорошо (в данном случае) лучше вообще обходиться одним кадром, что не нужно просто скрывать ...
onEnterFrame ваще не есть хорошо (в данном случае) лучше вообще обходиться одним кадром, что не нужно просто скрывать ...
Ты не въехал в задачу -
есть один кадр из которого управляется весь большой мув - на сцене куча объектов, в том числе имеющие вложенные объекты, некоторые из которых появляются на сцене только после попадания головки плеера в определённый кадр......
И вот на них то и предлагается повесить обработчик из единственного кадра на сцене....
Единственный выход - выше....
Muchacho
25.10.2005, 12:19
Штрек, твой вариант (с delete this.onEnterFrame) имеет смысл только если дальше в ролике нет объектов, которым надо присваивать функции.
Штрек, твой вариант (с delete this.onEnterFrame) имеет смысл только если дальше в ролике нет объектов, которым надо присваивать функции.
Естественно.....
А ты что думал, что пишется вариант на все случаи жизни?
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.