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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 17.01.2009, 18:33
SeaQuest вне форума Посмотреть профиль Отправить личное сообщение для SeaQuest Найти все сообщения от SeaQuest
  № 1  
Ответить с цитированием
SeaQuest
 
Аватар для SeaQuest

Регистрация: Jun 2007
Адрес: Москва
Сообщений: 86
The bomb! Что такое ":" ?

Например строчка var Listener:Object = new Object();
Объявляется локальная переменная Listener далее загадочное ":", а после него создается экземпляр объекта Object().
Нигде не могу найти ответ!
Или вот var mc:MovieClip = this.createEmptyMovieClip(...)


Последний раз редактировалось SeaQuest; 17.01.2009 в 18:38.
Старый 17.01.2009, 19:39
SeaQuest вне форума Посмотреть профиль Отправить личное сообщение для SeaQuest Найти все сообщения от SeaQuest
  № 3  
Ответить с цитированием
SeaQuest
 
Аватар для SeaQuest

Регистрация: Jun 2007
Адрес: Москва
Сообщений: 86
Спасибо! Я не верно сформулировал вопрос. Что становится с переменной когда осуществляется привязка ее с классом посредством ":"? Как это можно использовать?
Все что я нашел на странице перейдя по ссылке:
Цитата:
Можно создать экземпляр класса с помощью оператора new. В следующем примере создается экземпляр с именем CustomClass и выполняется привязка вновь созданного экземпляра класса переменной с именем customItem.
var customItem:CustomClass = new CustomClass();
Когда переменной назначают тип данных и присваивают значение - тут все понятно.
Но как переменной можно присвоить экземпляр класса?


Последний раз редактировалось SeaQuest; 17.01.2009 в 19:43.
Старый 17.01.2009, 20:12
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 4  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
Но как переменной можно присвоить экземпляр класса?
Я спрошу по-другому: как, не сохранив ссылку на этот экземпляр в переменной, Вы собираетесь дальше с ним работать?
Т.е. Вы написали:
Код:
new CustomClass();
Отлично, экземпляр создан! А теперь давайте зададим ему _х равный 10.
Так что не только можно, а просто неизбежно.
__________________
Reality.getBounds(this);

Старый 17.01.2009, 20:36
SeaQuest вне форума Посмотреть профиль Отправить личное сообщение для SeaQuest Найти все сообщения от SeaQuest
  № 5  
Ответить с цитированием
SeaQuest
 
Аватар для SeaQuest

Регистрация: Jun 2007
Адрес: Москва
Сообщений: 86
Вот все равно не пойму при том, что уже не новичек.
MyClass = new CustomClass();
Я теперь могу обращаться ко всем методам и свойствам класса CustomClass через экземпляр класса MyClass используя точечный синтаксис. При чем здесь переменная? Разьве что можно создать дополнительное свойство экземляра
MyClass.myVariable = anythin;
И тут myVariable будет выполнять роль переменной, но при этом не будет ей являться в чистом виде. Так все же зачем эти "привязанные" переменные?

Старый 17.01.2009, 20:50
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 6  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
И что здесь MyClass, если не переменная? То что Вы написали ее в "ленивом" стиле, еще не значит, что это... А кстати что это по-вашему? Имя экземпляра, я так чувствую?
И кто Вам сказал, что через экземпляр Вы будете иметь доступ ко всем свойствам и методам класса? Вот уж не факт)))

Добавлено через 7 минут
Что происходит здесь?
Код:
MyClass = new CustomClass();
MyClass = 3;
trace(MyClass);
Оказывается, это не имя а переменная(((
__________________
Reality.getBounds(this);

Старый 17.01.2009, 21:18
SeaQuest вне форума Посмотреть профиль Отправить личное сообщение для SeaQuest Найти все сообщения от SeaQuest
  № 7  
Ответить с цитированием
SeaQuest
 
Аватар для SeaQuest

Регистрация: Jun 2007
Адрес: Москва
Сообщений: 86
Цитата:
А кстати что это по-вашему?
Не по моему, а по тому, что вычитал в книжке это имя экземпляра класса.
Цитата:
И кто Вам сказал, что через экземпляр Вы будете иметь доступ ко всем свойствам и методам класса?
Именно так и написано в учебнике, что доступ к методам и свойствам, через экземпляр. И тут на тебе узнаю что меня где-то жестоко обманули. Теперь вообще нифига не понимаю
Код AS1/AS2:
MyClass = new CustomClass();
MyClass = 3;
trace(MyClass);
В этом примере MyClass - действительно играет роль переменной, потому как не было обращения ни к свойству, ни к методу по типу MyClass.myMetod().
Лучше объясните при чем здесь таки привязанные переменные.


Последний раз редактировалось iNils; 17.01.2009 в 21:39.
Старый 17.01.2009, 22:18
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 8  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
В них сохраняется ссылка на экземпляр, без которой Вы никак не сможете к этому экземпляру обратиться. Привязанные - я не очень в курсе этого термина, думаю это как раз неудачный перевод слова LINK (ссылка). Дело в том, что после строчки MyClass = 3; Вы навсегда теряете возможность обратиться к Вашему экземпляру, его свойствам и методам. Так что переменная действительно "привязана" и заменяет instance name (которое вообщето бывает только у дисплейных объектов, создаваемых в АС2 через create... а не через new). Указание типа данных для переменной, хранящей ссылку на экземпляр, существенно снижает ошибку, так как компиллятор просто не даст Вам присвоить этой переменной значение 3, сгенерировав ошибку компилляции. Конечно, от ошибок логики это не спасет, тем не менее. Ну и плюс читабельность и понятность кода другим (и Вам через месяц).

Добавлено через 9 минут
Проще говоря, то что Вы (или книга) называет "привязкой переменной к классу" - это объявление типа данных для переменной. Это значит, что никакой другой тип данных не может быть сохранен в этой переменной, в данном случае - только экземпляр класса CustomClass. Его Вы и сохраняете. А тройку не сможете.
__________________
Reality.getBounds(this);

Старый 17.01.2009, 22:34
SeaQuest вне форума Посмотреть профиль Отправить личное сообщение для SeaQuest Найти все сообщения от SeaQuest
  № 9  
Ответить с цитированием
SeaQuest
 
Аватар для SeaQuest

Регистрация: Jun 2007
Адрес: Москва
Сообщений: 86
Понял! Получается такая привязанная переменная будет вести себя как экземпляр класса, верно? То есть сама по себе она ничего не содержит, а пользоваться ей можно с таким же синтаксисом как и с экземпляром да?
То я понял что это, а как применять пока вопрос.

Старый 18.01.2009, 02:51
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 10  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
http://flasher.ru/forum/showthread.php?t=120104

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

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

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


 


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


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