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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 01.12.2012, 12:28
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 21  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
Код AS3:
if (!current in source)
! сильнее.
Надо так:
Код AS3:
if (!(current in source))
@etc, лучше без условия. Если кривые входные данные – лучше RTE схватить, чем пропустить пару current и залезть в не тот индекс.

Старый 01.12.2012, 14:12
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 22  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Ну проще throw new ArgumentError в else запихать.

Старый 01.12.2012, 14:55
Ленок вне форума Посмотреть профиль Отправить личное сообщение для Ленок Найти все сообщения от Ленок
  № 23  
Ответить с цитированием
Ленок

Регистрация: Nov 2012
Сообщений: 31
Цитата:
Сообщение от etc Посмотреть сообщение
Код AS3:
var fragments:Array = name.split('.');
var source:Object = stack;
while (fragments.length) {
  var current:String = fragments.shift();
  if (current in source) source = source[current];
}
return source;
Допилите по месту.
Работает великолепно, без допиливания.

А как сделать сеттер? Может быть у кого-нибудь есть идеи?

Старый 01.12.2012, 23:18
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 24  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
А он вам так нужен, сеттер? Вызов функции столько же места занимает:
foo.bar = 100;
foo.bar(100);
__________________
Hell is the possibility of sanity

Старый 02.12.2012, 01:03
Ленок вне форума Посмотреть профиль Отправить личное сообщение для Ленок Найти все сообщения от Ленок
  № 25  
Ответить с цитированием
Ленок

Регистрация: Nov 2012
Сообщений: 31
Цитата:
Сообщение от wvxvw Посмотреть сообщение
А он вам так нужен, сеттер? Вызов функции столько же места занимает:
foo.bar = 100;
foo.bar(100);
Круто, что уж

Код AS3:
foos.bars.foo.bar = 1; // сработает?
foos.bars.foo.foo = 1;
И на закуску

Код AS3:
for (index in foos.bars.foo)
Что сделает после вышеуказанного?

Мне надо, чтобы итерировал. С костылями в начале темы и с удачным геттером все нормально. Осталось придумать сеттер.

Старый 02.12.2012, 01:55
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 26  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Зачем вам именно в таком формате? Если вы не можете зарание планировать, и вам так сильно хочется чтобы именно сеттер: есть Proxy класс, в котором вы можете реализовать себе такое. Ну только, пока будете реализовывать прийдет понимание, что проще было без него, функциями ограничится. Но дело ваше.

Т.е. реализовывая это в Proxy вы поймете, что обращение к такому свойству сопряжено с кучей накладных расходов (за динамику нужно платить), и что в итоге схема типа object.set(value, ...fieldConsituents); get / find / each вам будет дешевле организовать, чтем воплотить в жизнь интерфейс, в котором еще и свои баги есть.
__________________
Hell is the possibility of sanity

Старый 02.12.2012, 17:23
Ленок вне форума Посмотреть профиль Отправить личное сообщение для Ленок Найти все сообщения от Ленок
  № 27  
Ответить с цитированием
Ленок

Регистрация: Nov 2012
Сообщений: 31
От сервера приходят данные - игровой мир. Он в доску динамичен. Сервер присылает его по частям, в зависимости от ситуации и местоположения. Клиент, соответственно, его отрабатывает.

Формат предусматривает как произвольные данные в строковом формате, ассоциативные массивы, а также колбеки. Некоторые условно произвольные фрагменты данных необходимо итерировать для обработки на клиенте.

Клиент в процессе работы дополняет копию этих данных, изменяет и удаляет... Короче, делает полноценный CRUD. Часть из них еще и возвращает.

Как это решено сейчас.
1. Такое решение было применено в прототипе. Формирование данных в нужной структуре полностью на сервере. Когда клиенту нужно изменить что-то в данных - он просит об этом сервер. Добрый PHP делает, что просили, и посылает пачку обновленных данных. Клиент кушает присланное.
2. Решение, примененное в альфе - в начале этой темы.

Оба решения работают. Не нравится: а. Костыли, б. Ограничения.

По геттеру решение найдено, и оно уже прошло проверку боем. Осталось придумать сеттер. В AS не сильна, только что начала его изучать, простите

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

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

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


 


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


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