Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Web-программирование - это просто!


Новое на сайте Программирование - это просто! (www.easyprog.ru):

В платном разделе

В бесплатном разделе

Добрый день, уважаемые подписчики!

Тема сегодняшнего выпуска: «Java Script(JS): Библиотека визуальных компонентов. Методы базового класса».

 

Продолжим разбирать методы класса CXBrBaseInterfaceClass (см. начало и ссылки для скачивания файлов).  Следующий на очереди _get_class_name:

function CXBrBaseInterfaceClass_get_class_name() { return "CXBrBaseInterfaceClass" }

 

Как видим, проще некуда: возвращаем имя класса в виде строки.

следующий метод _event_handler, там просто заглушка

function CXBrBaseInterfaceClass_event_handler(msg) {

    _message_tracer._trace(this,msg,"_event_handler");

    return false;

    }

 

 а выражение

_message_tracer._trace(this,msg,"_event_handler");

 

служит просто для отладки, его можно убрать.

 

Идем дальше - _create_message, оно создает структуру сообщения, которое может передаваться другим объектам:

function CXBrBaseInterfaceClass_create_message() {

    msg=new Array;

    msg['_source_id']=this._id;

    msg['_source_name']=this._get_class_name();

    if(this._dests.length>0) msg['_destinations']=this._dests; else msg['_destinations']=null;

    return msg

}

 

 

А вот описание этой структуры:

Поле

Тип

Назначение

_type

Number

Код типа события.

_source_id

Number

ИД источника событий

_source_name

String

Имя класса источника события

_source_channel_id

Number

ИД канала источника

_source_server

String

Имя сервера источника

_destinations

Array либо Number либо String

Получатели события. Может быть один конкретный объект, список объектов, объекты указанного класса или классов, либо все объекты, если поле равно null, так же можно указать имя сервера, которому адресовано сообщение. Кроме того, можно указать программное имя  объекта (_name). Для того, что бы отличить имя класса, от имени сервера или программного имени, будем считать, что если  строка, то это имя класса, если это имя сервера, то оно должно иметь префикс #, если это программное имя, то префикс @.

_dist_socet_id

Number или Array

Номер(а) сокета получателя, если событие адресовано другому сокету или сокетам, либо 0 если событие адресовано объекту того же сокета или это событие адресовано каналу

_dist_channel_id

Number или Array

ИД канала или каналов, которому(ым) адресовано сообщение, или 0, если сообщения не адресованы каналам.

_sour_socet_id

Number или Array

Номер сокета источника

_ext

Любой

Дополнительная информация

 

Поля _source_channel_id , _source_server, _dist_socet_id, _dist_channel_id и _sour_socet_id сделаны с расчетом на будущее. Напоследок, еще приведу таблицу кодов сообщения:

 

Код

Константа

Сообщение

Содержимое поля ext

1 msgDataChange Изменились данные Массив типа data_change_event

2

msgCommand

Команда

Код команды

3

msgSelected

Элемент выбран

Код выбранного элемента

4

msgClick

Клик по элементу

Структура _click_event. Для каждого элемента свой

5

msgSocketsQuery

Запрос на список сокетов, подключенных к каналу

Нет

6

msgSocketsAnswer

Выдача списка сокетов, подключенных к каналу

Array – список сокетов

7

msgKeyDown

Нажата клавиша

Код нажатой клавиши, либо массив.  Такой массив далее называется DOM_event

8

msgMouseMove

Курсор мыши над объектом

DOM_event

9

msgMouseOut

Курсор мыши уходит с объекта

DOM_event

10 msgQuerySendedToServer Послан запрос на сервер через Ajax В разработке
11 msgServerAnswered Сервер выдал ответ В разработке

12

msgSelectRow

Выбрана строка в таблице В разработке

Все константы сообщений объявлены в модуле XBrGlobalVars.js:

var msgDataChange=1;

var msgCommand=2;

var msgSelected=3;

var msgClick=4;

var msgSocketsQuery=5;

var msgSocketsAnswer=6;

var msgKeyDown=7;

var msgMouseMove=8;

var msgMouseOut=9;

var msgQuerySendedToServer=10;

var msgServerAnswered=11;

var msgSelectRow=12;

 

С уважением, Шуравин Александр, e-mail: megabax@rambler.ru, автор оставляет за собой право публиковать в рассылках ваши письма, если в письме прямо неоговорено нежелание его публиковать.

 


В избранное