Шаг 228.
Среда программирования Visual C++.
Объявление свойств и методов скриптлета

    На этом шаге мы рассмотрим способы описания свойств и методов скриптлета.

    В скриптлетах все свойства и методы, явно не объявленные открытыми, считаются закрытыми. Как и в любом HTML-документе, элементы <SCRIPT> - локальные для документа, в котором они определены.

    Существует два способа объявления открытых свойств и методов. Первый заключается в простом добавлении приставки public_ к именам всех открытых свойств и методов. Открытые свойства можно также определить, объявив их как функции с приставками public_get_ или public_put_. Это позволяет более тонко управлять свойством - например, Вы можете создать свойство только для чтения, определив функцию public_get() и отказавшись от функции public_put().

    В следующем примере приведен простой скриптлет, содержащий элемент с идентификатором p1. В блоке сценария после этого элемента предоставляются свойства text и color, задаваемые функциями get() и set(). Скриптлет также предоставляет функцию animate().

<HTML>
<HEAD></HEAD>
<BODY>
<FONT ID="f1" color="black">
<P ID="p1">Это абзац текста.</P>
</FONT>
<SCRIPT LANGUAGE="JavaScript">
  var public_text = p1.innerText;
 
  function public_get_color() 
  {
    return f1.color;
  }

  function public_put_color(color)
  {
    f1.color = color;
  }

  function public_animate()
  {
    // Код, выполняющий анимацию
  }
</SCRIPT>
</BODY></HTML>

    Если в странице-клиенте объявить экземпляр этого объекта с именем MyScriptlet (ниже показано, как это сделать), то станут доступными все перечисленные ниже операции JavaScript:

MyScriptlet.text = "Hello"; 
.    .    .
MyScriptlet.animate();
.    .    .
var OldColor = MyScriptlet.color;
.    .    .
MyScriptlet.color ="blue";

    Другая методика определения открытого интерфейса скриптлета состоит в применении объекта public_description языка JavaScript. Создается JavaScript-конструктор с объявлением открытых свойств и методов скриптлета, который затем присваивается объекту скриптлета public_description. Таким образом, свойства и методы скриптлета, не объявленные в конструкторе, остаются закрытыми.

    Скриптлет из предыдущего примера, созданный этим способом, выглядит так:

<HTML><HEAD></HEAD>
<BODY>
<FONT ID="f1" color="black">
<P ID="p1">Это абзац текста.</P>
</FONT>
<SCRIPT LANGUAGE="JavaScript">
  public_description = new CreateScriptlet();
  function CreateScriptlet()
  {
    this.text = p1.innerText;    // Свойство text
    this.put_color = putcolor;   // Свойство соlor (запись)
    this.get_color = getcolor;   // Свойство color (считывание)
    this.animate = doAnimation;  // Метод animate()
  }

  function getcolor()
  {
    return f1.color; 
  } 

  function putcolor(color)
  {
    f1.color = color; 
  }

  function doAnimation() 
  {
    // Код, выполняющий анимацию 
  }
</SCRIPT> 
</BODY></HTML>

    Имя конструктора (оно может быть любым) присваивается объекту public_description. В приведенном выше примере конструктор CreateScriptlet() определяет свойства text и color, задавая значение свойства text и определяя имена закрытых функций getcolor() и putcolor(), служащих для считывания и задания значения свойства color. Конструктор также определяет метод animate() и имя закрытой функции doAnimation(), реализующей этот метод.

    Способ с public_description применяют в основном разработчики, опытные в области объектно-ориентированного программирования. Он позволяет четко разделить интерфейс и его реализацию, а также компактно определить интерфейс скриптлета, разместив его в одном месте (обычно - в начале блока <SCRIPT>).

    На следующем шаге мы рассмотрим события скриптлета.




Предыдущий шаг Содержание Следующий шаг