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

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

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

Регистрация: Feb 2010
Сообщений: 811
Отправить сообщение для Universe с помощью ICQ Отправить сообщение для Universe с помощью Skype™
Arrow FD авто генерация this.obj вместо _obj

Заметил что иногда при генерации переменной из параметра в конструкторе у меня создаётся переменная вида _someVar, а иногда - this.someVar. Как сделать так чтобы всегда было this.someVar?

Старый 15.08.2011, 18:29
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 2  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
this.someVar генерируется, когда имя переменной класса совпадает с именем переменной в конструкторе.

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

Регистрация: Feb 2010
Сообщений: 811
Отправить сообщение для Universe с помощью ICQ Отправить сообщение для Universe с помощью Skype™
не понял, так оно ж всегда совпадает!
пример:
Код AS3:
private var buyedItems:Array;
public function ShoppingCart(buyedItems:Array) 
		{
				this.buyedItems = buyedItems;
				if (stage) init()
				else addEventListener(Event.ADDED_TO_STAGE, init);
		}
Я просто пишу buyedItems:Array в параметрах функции и нажимаю Ctrl + Shift + 1. Всё остальное FD делает сам. Токо вот как он это делает почему то отличается

Старый 15.08.2011, 21:10
incoob вне форума Посмотреть профиль Отправить личное сообщение для incoob Найти все сообщения от incoob
  № 4  
Ответить с цитированием
incoob

Регистрация: Mar 2008
Сообщений: 215
Если свойство Prefix fields when... пустое, то генерироваться _someVar, по идее, не может.

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
this добавляется для того, чтобы функция "понимала" к какому свойству вы обращаетесь к свойству класса или к свойству функции. А так как если имена обоих свойств совпадают, то внутри функции доминирует свойство функции. По этому нужно уточнять через this к какому свойству и обращаетесь.
Объяснил плоховато, но может что-то прояснится.
Код AS3:
private var buyedItems:Array;
public function ShoppingCart(buyedItems:Array) 
		{
				this.buyedItems //приватное свойсво класса
				buyedItems // свойство функции, её принимаемый параметр 
		}


Последний раз редактировалось samana; 16.08.2011 в 04:26.
Старый 29.08.2011, 12:47
Universe вне форума Посмотреть профиль Отправить личное сообщение для Universe Найти все сообщения от Universe
  № 6  
Ответить с цитированием
Universe
 
Аватар для Universe

Регистрация: Feb 2010
Сообщений: 811
Отправить сообщение для Universe с помощью ICQ Отправить сообщение для Universe с помощью Skype™
samana, да причём здесь это! Я просто спрашиваю про особенность работы самого FD. я прекрасно понимаю зачем там this и он меня там более чем устраивает! Вопрос в другом, попробуйте написать buyedItems:Array в параметрах функции и нажмите Ctrl + Shift + 1. Он вам напишет Generate field from parametr, следовательно создастся вот эта конструкция
Код AS3:
private var buyedItems:Array;
public function ShoppingCart(buyedItems:Array) 
		{
				this.buyedItems = buyedItems;
                }
и всё бы хорошо, но в некоторых случаях при выполнении тех же действий получается вот так:
Код AS3:
private var _buyedItems:Array;
public function ShoppingCart(buyedItems:Array) 
		{
				_buyedItems = buyedItems;
                }
почему?

Старый 31.08.2011, 17:16
ir73 вне форума Посмотреть профиль Отправить личное сообщение для ir73 Найти все сообщения от ir73
  № 7  
Ответить с цитированием
ir73
FD Team

блогер
Регистрация: Dec 2005
Сообщений: 365
Записей в блоге: 6
это захардкодено и не изменить

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

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

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


 


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


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