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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 07.11.2011, 21:30
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 31  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Цитата:
Ну и, не могу промолчать, но почему же не сделать хотя бы маркерный интерфейс, реализуемый и солдатами и транспортом, какой-нибудь IForce, и спать ночью спокойно, не царапая программистскую совесть звездами?
И как же я в таком случае буду узнавать, столкнулся солдат с себеподобным, или же его задавил танк? ) Или он при хотьбе наткнулся на стоящий джип, например.
Этот вариант исключен.
Цитата:
Ну пусть в сеттере (value:*). А кастинг-то тут каким боком?
У меня в сеттере помимо простого назначения, еще и получаются разные свойства от передаваемого объекта, например тип солдата, в соответствии с которым ему задается максимальная скорость, выносливость, передается ссылка на массив "отряд" и т.д. Короче говоря, во-первых я не понимаю, чем вариант со звездочкой в сеттере лучше или красивее изначалного (со звездочкой в userData), а во-вторых, с ним мне все равно пришлось бы приводить к типу и делать те же проверки.

Мой вывод: звездочка полезна, и нужна.

п.с. Никаких претензий к скорости исполнения такого кода у меня нет совершенно. Все работает так быстро, как мне и нужно.

Старый 07.11.2011, 21:42
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 32  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Архитектуру пересмотреть не желаете? Пока не поздно...
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Может, Вы просто кода кусочек покажете, потому что я решительно не понимаю, о чем Вы. Когда Вам надо будет узнать, солдат это или танк, Вы как ни крутите, будете проверять тип. Что со звездочкой, что с IForce. Вот только "в звездочку" залезет любая зараза, а в IForce – только боевые силы.
Цитата:
я не понимаю, чем вариант со звездочкой в сеттере лучше
Надеюсь, это не ко мне? Потому что я вроде доказывал что от звездочек надо избавляться в пользу интерфейсов.
Ладно, ну объясните мне по существу, по конкретному вопросу: зачем ЭТО?
Цитата:
var someVal:* = new ToDispose() as IDisposable;
Что по-вашему здесь делает кастинг? Какова его ответственность? Какие изменения он инициирует? Что делает возможным, или какой оставляет след?
__________________
Reality.getBounds(this);

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

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Цитата:
Архитектуру пересмотреть не желаете? Пока не поздно...
архитектуру чего? бокс2д? ) Это к Эрину Катто.
У меня в приложении архитектура нормальная.
Цитата:
Может, Вы просто кода кусочек покажете, потому что я решительно не понимаю, о чем Вы. Когда Вам надо будет узнать, солдат это или танк, Вы как ни крутите, будете проверять тип. Что со звездочкой, что с IForce. Вот только "в звездочку" залезет любая зараза, а в IForce – только боевые силы.
Не залезет туда ничего кроме IMovable и ISoldier. Кусочек кода показывать смысла не вижу, я же не вопросы тут задаю ) Меня в моем коде все устраивает. Работает отлично, написано все чисто и понятно.
Вместо IForce тут можно было бы и просто DisplayObject заюзать. Но не вижу необходимости.

Цитата:
Что по-вашему здесь делает кастинг? Какова его ответственность? Какие изменения он инициирует? Что делает возможным, или какой оставляет след?
Да это вообще простейший пример был. Какая разница что он тут делает? Это просто пример того, что Object не всегда можно использовать вместо *, и ничего более.


Последний раз редактировалось goodguy; 07.11.2011 в 21:52.
Старый 07.11.2011, 21:49
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 35  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от goodguy Посмотреть сообщение
архитектуру чего? бокс2д? )
бокс 4Ы, естессна.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
В общем ладно, хватит меня убеждать, что звездочка зло )
Ничего плохого в ней нет, если не злоупотреблять.

Вопрос то был в другом: Object == * ?
ответ: нет.

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
Это просто пример того, что Object не всегда можно использовать вместо *
Это был пример того, что Object не реализует интерфейс IDisposable, а для звездочки никто этого не проверяет.
Цитата:
В этом случае компиляция завершается ошибкой ... C классами проблем нет, но интерфейсы - другой случай.
То есть вместо интерфейса нельзя подсунуть Обжект, а вместо любого класса – можно? Я сегодня спать спокойно точно не буду.
Код AS3:
private var _val:Sprite;
...
var s:Object = new Sprite(); // по желанию можно добавить as Sprite; или as Object;
this.val = s; // пытаемся выдать тип Object за Sprite, как когда-то за IDisposable
....
public function set val(value:Sprite):void
{
	_val = value;
}
Цитата:
Error: Implicit coercion of a value with static type Object to a possibly unrelated type flash.display:Sprite.
И получаем абсолютно ту же ошибку.
__________________
Reality.getBounds(this);

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

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

Если вы знаете что она может вернуть несколько типов, лучше проверить их на выходе с помощью switch-is инструкций

Добавлено через 2 минуты
Цитата:
Сообщение от goodguy Посмотреть сообщение
В общем ладно, хватит меня убеждать, что звездочка зло )
Ничего плохого в ней нет, если не злоупотреблять.
Звездочка - зло ))) я это отношу туда же, куда и обращение вида parent.parent.parent - вроде синтаксис позволяет, но использовать никому не порекомендую.

На вопрос Вы ответили верно, Object != *

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

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Цитата:
И получаем абсолютно ту же ошибку.
Я и сам это знаю. Мог и не писать as IDisposable, ничего бы не изменилось
Цитата:
То есть вместо интерфейса нельзя подсунуть Обжект, а вместо любого класса – можно?
Что-то я не понял вопроса. Пора мне наверное спать идти уже ))
Цитата:
Звездочка - зло )))
Тут каждый решает для себя сам.


Последний раз редактировалось goodguy; 07.11.2011 в 23:30.
Старый 07.11.2011, 23:41
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 40  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Цитата:
Имхо, это крайне нежелательный случай, когда Вы не знаете какой тип возвращает функция.
Благодарю, Капитан! Имелось ввиду, что в рамках одного проекта вероятность возникновения ситуации, когда не известен тип возвращаемого, или вообще его наличие (единственное, где нам поможет *) стремится к 0.
__________________
...вселенская грусть

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

Теги
void , типы данных , функции

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

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


 


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


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