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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 06.04.2012, 23:09
ЗлОй ПрОграММер вне форума Посмотреть профиль Отправить личное сообщение для ЗлОй ПрОграММер Найти все сообщения от ЗлОй ПрОграММер
  № 1  
Ответить с цитированием
ЗлОй ПрОграММер

Регистрация: Nov 2010
Сообщений: 434
По умолчанию Написание сет, гет функций для x

Можно ли как нибудь для класса переопределить функции для получения координаты экземпляра по оси x
делаю так но выдаются ошибки
Код AS3:
override public function set x(value: Number): void
{
	x = value;
}
 
override public function get x(): Number
{
	return x;
}
Добавлено через 17 минут
нашёл как это сделать, вот код может кому и понадобиться
Код AS3:
override public function set x(value: Number): void
{
	super.x = value;
}
 
override public function get x(): Number
{
	return super.x;
}


Последний раз редактировалось ЗлОй ПрОграММер; 06.04.2012 в 23:27.
Старый 06.04.2012, 23:30
strangedk вне форума Посмотреть профиль Отправить личное сообщение для strangedk Найти все сообщения от strangedk
  № 2  
Ответить с цитированием
strangedk
 
Аватар для strangedk

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
Хорошо что получилось. а если не секрет, зачем такие ухищрения?
__________________
adobe AS3 manual

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Цитата:
Код AS3:
override public function set x(value: Number): void
{
	x = value;
}
Так адская рекурсия.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

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

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
Цитата:
Сообщение от GBee Посмотреть сообщение
Так адская рекурсия.
Даже такую адскую рекурсию можно предотвратить если всегда валидировать данные, и проверять на изменение:

Код AS3:
override public function set x(value: Number): void {
    if (x != value)
        x = value;
}
__________________
adobe AS3 manual

Старый 06.04.2012, 23:38
ЗлОй ПрОграММер вне форума Посмотреть профиль Отправить личное сообщение для ЗлОй ПрОграММер Найти все сообщения от ЗлОй ПрОграММер
  № 5  
Ответить с цитированием
ЗлОй ПрОграММер

Регистрация: Nov 2010
Сообщений: 434
Цитата:
Хорошо что получилось. а если не секрет, зачем такие ухищрения?
мне нужно узнавать когда экземпляр меняет свою координату по x и отправлять данные другому пользователю

Цитата:
Так адская рекурсия.
ну вот не догадался сам)

Старый 06.04.2012, 23:45
Inet_PC вне форума Посмотреть профиль Отправить личное сообщение для Inet_PC Посетить домашнюю страницу Inet_PC Найти все сообщения от Inet_PC
  № 6  
Ответить с цитированием
Inet_PC
 
Аватар для Inet_PC

Регистрация: Feb 2009
Адрес: Гы...поди, найди!
Сообщений: 853
Записей в блоге: 1
Цитата:
Даже такую адскую рекурсию можно предотвратить если всегда валидировать данные, и проверять на изменение:
Код AS3:
override public function set x(value: Number): void {
    if (x != value)
        x = value;
}
Ээ, а Вы сами проверяли? Это все еще рекурсия бесконечная.
__________________
http://www.chessmax.ru

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

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
Цитата:
Сообщение от ЗлОй ПрОграММер Посмотреть сообщение
мне нужно узнавать когда экземпляр меняет свою координату по x и отправлять данные другому пользователю
Лично я против таких "умных" объектов. И считаю что все изменения должен и отслеживать и передавать их родитель.

Если их будет например 100, то я боюсь представить какой хаос будет происходить в передаче данных.
Плюс - например не передавать координаты того объекта, который вышел за определенные пределы.

В общем, ваша идея безусловно хороша. Но всё же лучше бы это делать в родителе.

Добавлено через 7 минут
Цитата:
Сообщение от Inet_PC Посмотреть сообщение
Ээ, а Вы сами проверяли? Это все еще рекурсия бесконечная.
Ну лично у меня это вообще не запустилось.
Не думаю что у кого-то запустится, но пробуйте, может там не в strict mode или еще как-то

Я думаю что пожелание валидации и проверки на изменение - совсем не лишнее
__________________
adobe AS3 manual

Старый 06.04.2012, 23:55
ЗлОй ПрОграММер вне форума Посмотреть профиль Отправить личное сообщение для ЗлОй ПрОграММер Найти все сообщения от ЗлОй ПрОграММер
  № 8  
Ответить с цитированием
ЗлОй ПрОграММер

Регистрация: Nov 2010
Сообщений: 434
Цитата:
Лично я против таких "умных" объектов. И считаю что все изменения должен и отслеживать и передавать их родитель.

Если их будет например 100, то я боюсь представить какой хаос будет происходить в передаче данных.
Плюс - например не передавать координаты того объекта, который вышел за определенные пределы.
В общем, ваша идея безусловно хороша. Но всё же лучше бы это делать в родителе.
Экземпляра всего 2 по плану должно быть) причём только один из них передаёт данные, а другой будет получать; В родителе только будет функция которая передаёт данные, а если из родителя следить за изменением по оси X то придётся создавать лишнее событие ENTER_FRAME и в нём писать ещё проверки изменялись ли координаты или же нет.

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

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
Проверил, запустилось, и .... зависло))

Да, в этом случае даже валидация не поможет. Но думаю что дело в изначально неверном случае, а не в проверке.

Добавлено через 3 минуты
Цитата:
Сообщение от ЗлОй ПрОграММер Посмотреть сообщение
Экземпляра всего 2 по плану должно быть) причём только один из них передаёт данные, а другой будет получать; В родителе только будет функция которая передаёт данные, а если из родителя следить за изменением по оси X то придётся создавать лишнее событие ENTER_FRAME и в нём писать ещё проверки изменялись ли координаты или же нет.
тогда думаю еще правильнее, поставить проверку в функции которая передает данные. И если они такие же как и предыдущие - то просто не отправлять. Может сэкономить ресурсы.

Не нужно создавать ничего лишнего. Если родитель меняет координаты своего child'a, то он всегда может узнать какими они были до этого. И если новые координаты такие же как и старые - то просто не менять их.
__________________
adobe AS3 manual

Старый 07.04.2012, 00:09
ЗлОй ПрОграММер вне форума Посмотреть профиль Отправить личное сообщение для ЗлОй ПрОграММер Найти все сообщения от ЗлОй ПрОграММер
  № 10  
Ответить с цитированием
ЗлОй ПрОграММер

Регистрация: Nov 2010
Сообщений: 434
Цитата:
Не нужно создавать ничего лишнего. Если родитель меняет координаты своего child'a, то он всегда может узнать какими они были до этого.
Сам child управляется с помощью клавиш(т.е. управление в классе прописано), так что кроме как создавать ENTER_FRAME в родителе вариантов не вижу

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

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

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


 


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


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