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

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

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Переменная не может себя "вести", это Вы ее ведете. Расценивайте это как ИМЯ ЭКЗЕМПЛЯРА, тем более что всеравно никакого "имени экземпляра" не существует (кроме уже упомянутого instance name дисплейных объектов, которого у них не может не быть). Существуют только ссылки на экземпляры, и эти ссылки могут храниться только в переменных. Можете называть их именами. Только если Вы запросите name у дисплейного объекта, он Вам его вернет. А вот созданный через new знать не знает, что Вы ему дали "имя". Вы только можете создать у этого экземпляра свойство name и вбить туда "Вася". Если при этом переменная с ссылкой на этот экземпляр будет называться "Маша", у компилятора ни один мускул не дрогнет. И если Вы напишите в своей программе Вася.height - никогда не узнаете его рост. Только рост Маши. Потомучто и height, и "Вася" - это только свойства Маши))))
__________________
Reality.getBounds(this);

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

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

Старый 18.01.2009, 17:31
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 13  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
В FAQ этот точно не попадет. Нет, ни часто встречающемуся вопроса, ни самого четкого вопроса и ответа.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Jun 2007
Адрес: Москва
Сообщений: 86
Цитата:
Существуют только ссылки на экземпляры, и эти ссылки могут храниться только в переменных.
То есть MyDate, в следующем примере - это ссылка на экземпляр.
Код AS1/AS2:
MyDate :Date = new Date();
А что тогда это?
Код AS1/AS2:
MyDate = new Date()
Тоже ссылка на экземпляр? Тогда чем она отличается от переменной, являющейся ссылкой на экземпляр?

Wolsh, Вы об этих принципах где-то узнали. Подскажите источники, где можно об этих основах прочитать. Я хочу понимать это, а не копипастить. У меня 4 книжки по флешу и ни в одной об этом не разъясняется.

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Отличается тем, что в первом случае эта переменная может хранить ссылку только на экземпляр класса Date. A Number не может, и String, и MovieClip. И всё, больше ничем. (Только переменной без var невозможно задать тип данных).
__________________
Reality.getBounds(this);


Последний раз редактировалось Wolsh; 18.01.2009 в 19:05.
Старый 18.01.2009, 19:06
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 16  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
var - обьявление переменной. Переменная может быть типизированной и нетипизированной. В 1ом случае через двоеточие указывается тип переменной (имя класса). Обьявление
Код AS1/AS2:
var d:Date = new Date()
аналогично выражению
Цитата:
Date d = new Date();
в Java например. Так понятнее?

Ваш 2ой код - присвоение значения необьявленной нетипизированной переменной. AS1 создает в этом случае переменную сам, в этом его мягкость, на мой взгляд, излишняя. AS3 такой конструкции, например, уже не допустит, требуя корректного обьявления переменной.
__________________
4am is time to rock

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Что такое вообще экземпляр класса? Это в любом случае наследник от Object. Это просто набор объединенных данных (свойств), так или иначе поименованных или проиндексированных. Физически это просто компания из нескольких данных в памяти, программно - компания из ссылок на них. И это - любой экземпляр любого класса.
Имя, как Вы его называете, это имя переменной. Но не забывайте, что переменные существуют не сами по себе в космосе, они создаются внутри других объектов как их свойства. Любая переменная - это чье-то свойство, т.е. еще одна ячейка памяти, входящая в некое сообщество. Вы пишете либо явно: mc.id=2 создавая в mc динамическое свойство-переменную id, либо внутри mc (или в теле класса) пишете var id:Number = 2, и это тоже самое, только в первом случае Вы не можете жестко задать тип данных, которые могут быть записаны в ячейку памяти, на которую указывает id.
Вариант просто написать id=2 бессмысленно рассматривать, это - АС1, в котором объявления типов не было вообще. То, что многие так пишут и в АС2 - это их дело, причина - в том что постоянно вырывают код из АС1 исходников, так писать просто допустимо, но никем и никогда не рекомендуется. Это тоже, что использовать конструкции вроде onClipEvent и on(press) - можно, но это не АС2.
__________________
Reality.getBounds(this);

Старый 19.01.2009, 12:03
Жень Шень вне форума Посмотреть профиль Отправить личное сообщение для Жень Шень Найти все сообщения от Жень Шень
  № 18  
Ответить с цитированием
Жень Шень
 
Аватар для Жень Шень

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
Цитата:
Сообщение от SeaQuest Посмотреть сообщение
...Подскажите источники, где можно об этих основах прочитать. Я хочу понимать это...
Да вы наверно не те книжки прикупили. Вот выдержка из предложенного ранее ХЭЛПА:
Цитата:
Для связи переменной с типом данных это необходимо при объявлении переменной. Объявление переменной без указания ее типа разрешено, но при этом будет создаваться предупреждение в строгом режиме компилятора. Тип переменной назначается добавлением к имени переменной двоеточия : с последующим указанием типа этой переменной. Например, в следующем программном коде объявляется переменная i, которая имеет тип int.
var i:int;
Значение переменной можно задать, используя оператор присваивания (=). Например, в следующем коде объявляется переменная i и ей назначается значение 20.
...
...
Можно создать экземпляр класса с помощью оператора new. В следующем примере создается экземпляр с именем CustomClass и выполняется привязка вновь созданного экземпляра класса переменной с именем customItem.
var customItem:CustomClass = new CustomClass();

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

Регистрация: Jun 2007
Адрес: Москва
Сообщений: 86
Жень Шень, благодарю, на конкретно той странице про переменные я этого не нашел. Сегодня повторил книжку Гари Розенцвейга "Создание игр с помощью Action Script" с надписью на пол книги Macromedia Flash 8. Во всей книге я не нашел AS2 скрипта! Везде AS1, код в мувиках! Классов нима! Внешней подгрузки тож, все аттачится из бб, и дублируется со сцены! И при этом 8 версия! Редакторы просто написали новое название, дабы не терять денег.
Тема закрыта, я счастлив!

Старый 20.01.2009, 10:52
Жень Шень вне форума Посмотреть профиль Отправить личное сообщение для Жень Шень Найти все сообщения от Жень Шень
  № 20  
Ответить с цитированием
Жень Шень
 
Аватар для Жень Шень

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
Привет!
Для SeaQuest. Скачайте ХЭЛП по АС3.
Скачайте ХЭЛП по АС2.
Это самые лучшии "книжки", если не считать К. Мука.
Его читать в первую очередь.
И прикрепил из ХЭЛПа раздел операторов. Читать про :
ЗЫ
Возможно будет немного долго загружаться из-за обильного присутсвия "onclick="javascript:...".
Успехов!
Вложения
Тип файла: rar operators.rar (37.2 Кб, 34 просмотров)

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

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

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


 


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


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