![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Dec 2008
Сообщений: 67
|
Здравствуйте!
Допустим есть класс, в котором хранятся данные о клиентах и мы можем получить данные зная имя клиента. Пример //код с помощью которого данные были добавлены опущен для краткости. var person = Clients.getPerson('Name'); trace (person.getSex); //Трассировка покажет нам пол клиента Name. Вопрос: Как подобное реализовать? |
|
|||||
|
Регистрация: Jan 2008
Сообщений: 7
|
Clients - класс с функциями добавления , стирания (не имею представления его функциональности) , с Массивом клиентов
Client - класс самого клиента с свойствами типа "Пол" . При добавлении создаешь объект клиента и сохраняешь его в массиве получится так (если устраивает) : // 1) Добавляем клиента. Clients.add('Name'); // 2) Устанавливаем его пол. Clients.yourArray['Name'].Sex = 'male'; // 3) Получаем пол. trace(Clients.yourArray['Name'].Sex); //Трассировка покажет нам пол клиента Name. |
|
|||||
|
Регистрация: Dec 2008
Сообщений: 67
|
Не совсем то, но на мысль наталкивает...
|
|
|||||
|
Flash Aксакал
Регистрация: Jun 2005
Сообщений: 636
|
Если уж больно хочется так, то пожалуйста
файл Clients.as файл ClientsManager.as package { import flash.utils.Proxy; import flash.utils.flash_proxy; use namespace flash_proxy; public dynamic class ClientsManager extends Proxy { private var clients:Object = {}; private var clientsCount:int = 0; public function add (client:Client):Client { var replacedClient:Client; if (client) { replacedClient = clients [client.name]; clients [client.name] = client; clientsCount ++; } // end if return replacedClient; } public function remove (client:Client):Client { if (client && clients [client.name] is Client) { delete clients [client.name]; clientsCount --; } // end if return client; } public function get length ():int { return clientsCount; } override flash_proxy function getProperty (name:*):* { if (clients.hasOwnProperty (name)) { return clients [name]; } // end if return undefined; } } } package { public class Client { private var _sex:int; private var _name:String; public static const SEX_UNDEFINED:int = -1; public static const SEX_FEMALE:int = 0; public static const SEX_MALE:int = 1; public function Client (name:String, sex:int) { _name = name; _sex = sex; } public function toString ():String { return '[Client name="' + _name + '" sex="' + _sex + '"]'; } public function get name () { return _name; } public function get sex () { return _sex; } } } |
|
|||||
|
Регистрация: Dec 2008
Сообщений: 67
|
Это надо переварить.
Большое спасибо, 7thsky™. |
|
|||||
|
Регистрация: Jun 2006
Сообщений: 164
|
А в чем прикол использования Clients.Vasya ? Чем это особенно удобно?
|
|
|||||
|
Flash Aксакал
Регистрация: Jun 2005
Сообщений: 636
|
Я тоже не понял прикола, так хотел Petav - я показал лишь один из способов реализации.
|
|
|||||
|
Регистрация: Jun 2006
Сообщений: 164
|
petav, расскажите пожалуйста, зачем вам это понадобилось?
|
|
|||||
|
Регистрация: Jul 2008
Адрес: Украина, Киев
Сообщений: 253
|
У petav, должно быть, очень мощный компьютер и слишком мало ошибок в программе
![]() |
|
|||||
|
Регистрация: Dec 2008
Сообщений: 67
|
Друзья, я лишь пытаюсь удобно и гибко спроектировать приложение. Я пишу видеочат и в классе клиенты будет вся информация о подключившемся пользователе. Ссылка на его поток что бы управлять (воспроизводить/останавливать). Координаты его VideoBoX для чтения и изменения. Ссылка на объект который отображает список пользователей.
Добавлено через 3 минуты litebox Цитата:
Добавлено через 8 минут И наконец-то чем понятнее код и логичнее, тем легче приложение эволюционировать. А если код будет не понятный, то изменения в нем подобно революции. Я не берусь судит что этот подход очень удобный, может в нем как и во многом другом есть недостатки, но мне для решения моей задачи он кажется логичным. Я еще не тестировал работоспособность этого метода, потому как занимаюсь этим проектом в свободное время.... |
![]() |
![]() |
Часовой пояс GMT +4, время: 05:50. |
|
|
« Предыдущая тема | Следующая тема » |
|
|