Просмотр полной версии : function
Несложный вопрос:
в первом фрейме стоит :
onEnterFrame = function(x)
if(что-то==то-то){
действие
}
}
как я понял, я создал функцию "x" которая с постоянно будет проверять, равно ли "что-то" и "то-то" и выполнять "действие".
Вопрос вот в чём: как удалить или отменить фукцию "х".
не, ты не создал функцию "х", это функция срабатывает каждый раз при входе в кадр рута или мувика, смотря к чему ты ее прикручиваешь...и не принимает никаких параметров кстати:
_root.onEnterFrame = function(){
if(что-то==то-то){
действие
}else{
delete _root.onEnterFrame
}
}
delete _root.onEnterFrame удаляет функцию
thanks derhab!!!
А если таймлайн не сдвигается с места то функция не срабатывает???
Также если мы пишем "delete _root.onEnterFrame" то во всём руте все фукнции к которым прикручены "onEnterFrame" удаляются???
Тогда можно ли как-то проименовать функцию чтоб удалять
только её а не все "onEnterFrame" ???
Вообще проблема у меня такая: надо сделать чтобы скрипт в реальном времени следил, например, за какой-то переменной :
как только она изменяется, так сразу происходит событие.
Я решил делать это с помощью функций, но может существует более безгиморный способ???
Заранее спасибо....
artfla$her
06.09.2004, 01:03
function lister() {
trace(arguments[2]);
return (arguments[2]);
}
listener = {myValue: 0};
listener.watch("myValue", lister);
Здесь myValue - свойство объекта listener. К объекту привязывается следящая функция lister, которая запускается при изменении/записи данных в myValue. Обратиться к значению myValue из тела функции можно так - arguments[2]. Функция должна возвращать новое значение свойства - т.е. arguments[2]. arguments в целом здесь равен [свойство, старое значение, новое значение, доп. параметр]
Доп. параметр может передаваться функции, его надо указать в методе watch третьим аргументом. Вот такие пирожки с котятами :)
FreeLander
06.09.2004, 13:56
а вот из хелпа:
// создаём объект
var myObject:Object = new Object();
// добавляем св-во отвечающее за скорость
myObject.speed = 0;
// пишем функцию, которая будет вызваться в случае изменения св-ва "speed"
var speedWatcher:Function = function(prop, oldVal, newVal, speedLimit) {
// проверяем не превышен ли лимит скорости
if (newVal > speedLimit) {
trace ("Вы слишком гоните.");
}
else {
trace ("Едете нормально.");
}
// возвращаем значение в св-во "speed".
return newVal;
}
// используем метод watch() для регистрации события изменения значения св-ва "speed", при этом в качестве параметров передаём:
// - имя св-ва, на изменение которого реагировать: "speed"
// - ссылка на функцию, которая должна при этом срабатывать: speedWatcher
// - предел скорости в качестве дополнительного параметра, определяемого пользователем: 55
myObject.watch("speed", speedWatcher, 55);
// присваиваем св-ву "speed" сначала значение 54, а потом - 57
myObject.speed = 54; // в окне вывода (output): Вы слишком гоните.
myObject.speed = 57; // в окне вывода (output): Едете нормально.
// убираем реакцию на изменение св-ва "speed"
myObject.unwatch("speed");
myObject.speed = 54; // это не вызовет сообщений в окне вывода (output)
// присваиваем св-ву "speed" сначала значение 54, а потом - 57
myObject.speed = 54; // в окне вывода (output): Вы слишком гоните.
myObject.speed = 57; // в окне вывода (output): Едете нормально.
Наверно, наоборот.
myObject.speed = 54; // в окне вывода (output): Едете нормально.
myObject.speed = 57; // в окне вывода (output): Вы слишком гоните.
FreeLander
06.09.2004, 14:09
пардон), паст/копи, лень и невнимательность)
Всем огромное спасибо!
Выручили!
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.