Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 09.06.2008, 16:32
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 11  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Как неправда???! Просветите, пожалуйста.

Старый 09.06.2008, 16:37
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 12  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от Волгоградец Посмотреть сообщение
Как неправда???! Просветите, пожалуйста.
Узнайте, что такое «область видимости».

Старый 09.06.2008, 16:55
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 13  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
__etc, при всем моем уважении, но помощь у вас неважная.
Цитата:
Цепочка областей видимости — это список ActionScript-объектов. Flash Player ищет идентификатор, начиная с последнего элемента в цепочке областей видимости, и продолжает подниматься по цепочке, пока не найдет его.
В случае с setinterval () this в качестве первого параметра - это объект _root, при условии что код находится на главной временной диаграмме?


Последний раз редактировалось Волгоградец; 09.06.2008 в 16:59.
Старый 09.06.2008, 16:59
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 14  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
this — это ссылка на самого себя. При передачи области видимости метод будет выполнен в ней. Если область не указана, то метод будет выполнен в анонимной области видимости.

p.S. В помошники я и не записывался.

Старый 09.06.2008, 17:18
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 15  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Предполагаю, что анонимная область видимости - это объект Object или _root, другими словами.

Старый 09.06.2008, 17:35
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 16  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Нет, у этой области видимости вообще нет this, это не _root и не Object.

Старый 09.06.2008, 17:53
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 17  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
__etc, если не секрет, откуда вы это узнали - этого нет ни в хэлпе, ни в других букварях и даже Гугле!!! Я вот впервые услышал про анонимную область видимости и до сих пор не понимаю ее смысл.

Старый 09.06.2008, 18:31
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 18  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
в этом можно легко убедиться =)
Код:
setTimeout.someVar = 'foo';
var i:Number = setTimeout(someFunc, 100);
function someFunc():Void {
	trace(this); //undefined
	trace(this.someVar); //undefined // this не указывает на setTimeout
	trace(arguments.callee.someVar); //bar // arguments.callee указывает на someFunc
	trace(arguments.caller.someVar); //undefined // arguments.caller не указывает на setTimeout
}
someFunc.someVar = 'bar';
__________________
Hell is the possibility of sanity

Старый 10.06.2008, 10:19
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 19  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Я в замешательстве... Почему вот так вообще не выполняется код:
Код:
var i:Number = setTimeout(this, someFunc, 100);
В данном случае this ссылается на объект, который активировал код. Согласно цепочке областей видимости компилятор ищет этот объект вне функции - получается, в setTimeout(). Там не находит и поднимается выше - а это уже _root. Почему же тогда ничего не выполняется?

Старый 10.06.2008, 10:32
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 20  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Надо передавать название метода в объекте, а не ссылку на этот метод.

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:22.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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