ГлавнаяСправка по использованию серверного ActionScriptКласс Application › application.registerClass()

application.registerClass()

application.registerClass(className, constructor)

Регистрирует функцию-конструктор используемую для дэсериализации объекта определенного типа, то есть преобразует объект из последовательной формы в параллельную. Если функция-конструктор класса не зарегистрирована, методы десеарилизированых объектов вызываться не будут. Этот же метод можно использовать для того что бы отменить регистрацию функцию-конструктор класса. Это является продвинутым использованием серверного программирования и необходимо только при пересылке объектов ActionScript между клиентом и сервером.

Обмен данными между сервером и клиентом происходит посредством сетевого подключения. Поэтому, в случаи использования типизированных объектов, на каждой стороне необходимо иметь прототипы всех совместно используемых типов объектов. Другими словами, на стороне клиентского приложения и серверного приложения должны быть определены и задекларированы типы данных, которые используются совместно, для того что бы обеспечить понятные, взаимные связи между объектом, методом или свойством на стороне клиента и соответствующим ему элементе на стороне сервера. С помощью application.registerClass() на стороне сервера, можно зарегистрировать класс объекта и в последующем использовать определенные в нем методы.

Функции конструкторов нужно использовать для инициализации, то есть для определения исходных значений свойств и методов; они не должны использоваться для исполнения серверного кода. Функции конструкторов вызываются автоматически, как только со стороны клиента приходят сообщения, которые нужно „обезопасить“ так как они могут быть вызваны злоумышленником. Остерегайтесь определения процедур, которые могут быть небезопасны и привести к негативным последствиям, таким как переполнение дискового пространства или интенсивная нагрузка на процессор.

Функция-конструктор вызывается до того как устанавливаются свойства объекта. Класс может определять метод onInitialize(), который вызывается после того как произошла инициализация объекта и установились значения свойств. Этот метод используется для обработки данных после десериализации объекта.

При регистрации класса, прототипом которого установлен другой класс, нужно установить конструктор прототипа на оригинальный класс после установления прототипа. Второй пример ниже иллюстрирует этот момент.

Примечание: Серверные классы должны определятся как function function_name(){}, как это показано в примерах ниже. Если же их не определять должным образом application.registerClass() не сможет распознавать класс, экземпляры которого передаются с клиентской стороны серверу, что приводит к возникновению ошибок.

Доступно с версии сервера

Flash Communication Server 1

Параметры

className
Строка, содержащая имя класса ActionScript.

constructor
Функция-конструктор, используемая для создания объектов отдельного класса в процессе десериализации объекта. Имя функции-конструктора должно быть таким же, что и className. В процессе сериализации объекта, имя функции-конструктора сеарилизируется как тип объекта. Для того что бы отменить регистрацию класса, в качестве параметра constructor нужно указать значение null. Сериализация — процесс перевода объекта в то, что можно переслать на другой компьютер посредством сетевого подключения, то есть процесс перевода какой-либо структуры данных в последовательность битов.

Пример

В следующем примере определяется функция-конструктор Color со свойствами и методами. После того как в приложении устанавливается соединение, для регистрации класса объектов типа Color вызывается метод registerClass(). Когда типизированный объект отправлен со стороны клиента на сервер, этот же класс вызывается для создания соответствующего объекта на стороне сервера. После остановки приложения, метод registerClass() вызывается снова со значением null что бы отменить регистрацию класса.

function Color(){ 
    this.red = 255; 
    this.green = 0; 
    this.blue = 0; 
} 
Color.prototype.getRed = function(){ 
    return this.red; 
} 
Color.prototype.getGreen = function(){ 
    return this.green; 
} 
Color.prototype.getBlue = function(){ 
    return this.blue; 
} 
Color.prototype.setRed = function(value){ 
    this.red = value; 
} 
Color.prototype.setGreen = function(value){ 
    this.green = value; 
} 
Color.prototype.setBlue = function(value){ 
    this.blue = value; 
}             
application.onAppStart = function(){ 
    application.registerClass("Color", Color); 
};  
application.onAppStop = function(){ 
    application.registerClass("Color", null); 
};

Следующий пример демонстрирует как использовать метод application.registerClass() вместе со свойством prototype:

function A(){} 
function B(){} 
 
B.prototype = new A(); 
// Установить конструктор назад к B. 
B.prototype.constructor = B; 
// Сюда вставить код. 
application.registerClass("B", B); 

Остальные методы и свойства

Ярлыки: , ,

  1. Пока без комментариев.
  1. Пока нету.