![]() |
|
||||||||||
|
|||||
|
Здравствуйте.
Столкнулся с интересной проблемой, если в функции вызываемой при помощи setInterval попробовать обратиться к this, то как это не странно this возвращает undefined. Object.prototype.test=function(){ trace(this.test); if(t==undefined){ t=setInterval(this.test,100); } } a={}; a.test(); [type Function] undefined undefined undefined undefined undefined Ещё вариант: Object.prototype.test=function(){ trace(this); if(t==undefined){ t=setInterval(this.test,100); } } a={}; a.test(); [object Object] undefined undefined undefined undefined undefined Почему так? Почему this возвращает undefined? Занимаюсь по книжке Гурского, так вот, если верить ему(глава про ОПП во Flash) то this никогда undefined не должна возвращать. Очень интересный и важный вопрос, пожалуйста помогите.
__________________
Играй. Это жизнь. Всё повторяется. Играй. |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
|
|
|||||
|
to udaaff
Невероятно, но факт описание в справке по AS1/AS2: setInterval() Доступность Flash Player 6. Синтаксис setInterval(functionName:Function, interval:Number [, param1:Object, param2, ..., paramN]) : Number Параметры functionName Имя функции или ссылка на безымянную (анонимную) функцию. interval Промежуток времени, через который вызывается фунция functionName , в миллисекундах. param1, param2, ..., paramN Необязательные параметры, передаваемые вызываемой функции или методу. Возвращает Число-идентификатор, которое может быть передано clearInterval() для отмены циклического вызова функции. Описание Функция; периодически вызывает указанную функцию или метод. Вы можете использовать это для обновления значения переменных в базе данных или обновления величины, показывающей какое-либо время. Если interval меньше, чем соответствующей частоте кадров ролика интервал (например, 10 кадров в секунду [fps] соответствуют интервалу в 100 миллисекунд), функция будет вызываться с максимально возможно близкой (при данной частоте кадров) к interval частотой. Вы должны использовать функцию updateAfterEvent(), если необходимо обновлять изображение на экране. Если же занчение interval больше, чем соответствующее данной частоте кадров ролика значение, вызов функции будет происходить при каждой смене кадров (точнее, когда воспроизводящая головка на Таймлайне входит в кадр); это минимизирует излишне частое обновление экрана. Внимание вопрос. Почему у Вас первый параметр объект содержащий функцию, а второй имя функции, почему третий не массив аргументов, а интервал вызова??? Или есть какой-то ещё тайный справочник по AS1/AS2? Тогда пожалуйста подскажите где достать его. Добавлено через 3 минуты Просто всё действительно помогло, и работает. Просто интерестно откуда Вы это взяли? Где нормальный хелп по командам?
__________________
Играй. Это жизнь. Всё повторяется. Играй. |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
ActionScript 2.0 Language Reference
ActionScript language elements > Global Functions > setInterval function
setInterval function
setInterval(functionReference:Function, interval:Number, [param1:Object, param2, ..., paramN]) : Number
setInterval(objectReference:Object, methodName:String, interval:Number, [param1:Object, param2, ..., paramN]) : Number
Цитата:
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
AzagThoth, найдите справку посвежее.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 21:46. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| setinterval |
|
|