![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2007
Адрес: Москва
Сообщений: 86
|
Например строчка var Listener:Object = new Object();
Объявляется локальная переменная Listener далее загадочное ":", а после него создается экземпляр объекта Object(). Нигде не могу найти ответ! ![]() Или вот var mc:MovieClip = this.createEmptyMovieClip(...) Последний раз редактировалось SeaQuest; 17.01.2009 в 18:38. |
|
|||||
|
Регистрация: Jun 2007
Адрес: Москва
Сообщений: 86
|
Спасибо! Я не верно сформулировал вопрос. Что становится с переменной когда осуществляется привязка ее с классом посредством ":"? Как это можно использовать?
Все что я нашел на странице перейдя по ссылке: Цитата:
Но как переменной можно присвоить экземпляр класса? Последний раз редактировалось SeaQuest; 17.01.2009 в 19:43. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
Т.е. Вы написали: Отлично, экземпляр создан! А теперь давайте зададим ему _х равный 10. Так что не только можно, а просто неизбежно.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Jun 2007
Адрес: Москва
Сообщений: 86
|
Вот все равно не пойму при том, что уже не новичек.
MyClass = new CustomClass(); Я теперь могу обращаться ко всем методам и свойствам класса CustomClass через экземпляр класса MyClass используя точечный синтаксис. При чем здесь переменная? Разьве что можно создать дополнительное свойство экземляра MyClass.myVariable = anythin; И тут myVariable будет выполнять роль переменной, но при этом не будет ей являться в чистом виде. Так все же зачем эти "привязанные" переменные? |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
И что здесь MyClass, если не переменная? То что Вы написали ее в "ленивом" стиле, еще не значит, что это... А кстати что это по-вашему? Имя экземпляра, я так чувствую?
И кто Вам сказал, что через экземпляр Вы будете иметь доступ ко всем свойствам и методам класса? Вот уж не факт))) Добавлено через 7 минут Что происходит здесь? Оказывается, это не имя а переменная(((
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Jun 2007
Адрес: Москва
Сообщений: 86
|
Цитата:
Цитата:
![]() В этом примере MyClass - действительно играет роль переменной, потому как не было обращения ни к свойству, ни к методу по типу MyClass.myMetod(). Лучше объясните при чем здесь таки привязанные переменные. Последний раз редактировалось iNils; 17.01.2009 в 21:39. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
В них сохраняется ссылка на экземпляр, без которой Вы никак не сможете к этому экземпляру обратиться. Привязанные - я не очень в курсе этого термина, думаю это как раз неудачный перевод слова LINK (ссылка). Дело в том, что после строчки MyClass = 3; Вы навсегда теряете возможность обратиться к Вашему экземпляру, его свойствам и методам. Так что переменная действительно "привязана" и заменяет instance name (которое вообщето бывает только у дисплейных объектов, создаваемых в АС2 через create... а не через new). Указание типа данных для переменной, хранящей ссылку на экземпляр, существенно снижает ошибку, так как компиллятор просто не даст Вам присвоить этой переменной значение 3, сгенерировав ошибку компилляции. Конечно, от ошибок логики это не спасет, тем не менее. Ну и плюс читабельность и понятность кода другим (и Вам через месяц).
Добавлено через 9 минут Проще говоря, то что Вы (или книга) называет "привязкой переменной к классу" - это объявление типа данных для переменной. Это значит, что никакой другой тип данных не может быть сохранен в этой переменной, в данном случае - только экземпляр класса CustomClass. Его Вы и сохраняете. А тройку не сможете.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Jun 2007
Адрес: Москва
Сообщений: 86
|
Понял! Получается такая привязанная переменная будет вести себя как экземпляр класса, верно? То есть сама по себе она ничего не содержит, а пользоваться ей можно с таким же синтаксисом как и с экземпляром да?
То я понял что это, а как применять пока вопрос. |
|
|||||
|
Banned
[+4 01.02.09]
[+1 01.02.09] |
|
![]() |
![]() |
Часовой пояс GMT +4, время: 20:49. |
|
|
« Предыдущая тема | Следующая тема » |
|
|