Flash - статьи

Как устроены связи.


Связи между объектами — это суть наследники класса MovieClip, создаются динамически в процессе рисования и имеют обработчики событий onPress(), onRelease(), а также обработчик контекстного меню itemHandler(_obj, menuItem), где:

  • _obj — имя выбранной пользователем связи;
  • menuItem — подпункт контекстного меню.

Количество звеньев в связи (в линии) ничем не ограничивается, другими словами, линия может быть как угодно сложной.

Примечание. В определениях «как угодно сложной» или «ничем не ограничивается» есть немного от лукавого. Более точное определение может звучать так: «сложность композиции зависит от мощности Вашего компьютера».

Все связи сохраняются в двух специальных массивах: arrayLines({startNameElement, endNameElement, lineObject ,,,,}) и arrayPoint({nameLine, x,y }); где,

  • startNameElement — стартовый элемент;
  • endNameElement — финишный элемент;
  • lineObject, nameLine — имя линии;
  • x, y — координаты звена линии.

Первый массив устанавливает соответствие между двумя связываемыми объектами и именем связи (линии). Второй массив содержит все множество координат точек изменений, через которые проходит линия в формате: имя линии — координаты точки.

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



Содержание раздела