Урок 13. Управление шрифтами в CSS
New Page 1
Web-программирование: «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;
|
|