главная -> статьи -> уроки -> Flash графика в приложении. Циклограммы.
 
Переехал на ased.dtn.ru

  Рассмотрим некий абстрактный процесс, в котором объекты, в результате деятельности человека? (последовательность периодов), пребывают в последовательности состояний. Это и технологический процесс, и движение документа в конторе, и учебный процесс, и задачи планирования, и пр., и пр.
    Работа пользователя в программном продукте, ориентированном на подобный класс задач, должна завершаться, предпочтительно, графическим представлением результата проектирования. Ниже представлен фрагмент приложения формирующий циклограмму технологического процесса по результатам его расчета.

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

duplicateMovieClip(_root.lh1, "us"+i,j);
setProperty("us"+i, _x, getProperty("hs_v"+i, _x));
setProperty("us"+i, _y, getProperty("hs_v"+i, _y)-getProperty("hs_v"+i, _height));
setProperty("us"+i, _width, parseInt(scale*faz_uss));
j++;
duplicateMovieClip(_root.lv1, "us_v"+i,j);
setProperty("us_v"+i, _x, getProperty("us"+i, _x)+getProperty("us"+i, _width));
setProperty("us_v"+i, _y, getProperty("us"+i, _y));
j++;

  Причем в выражении:
  duplicateMovieClip(_root.lh1, "us"+i,j);
  i - переменная обеспечения уникальности имен;
  j - переменная обеспечения уникальности слоев, т.е. каждая копия объекта занимает свой слой!
  Далее устанавливаем свойства копии. И здесь еще одна тонкость. Исходный горизонтальный вектор несет в себе метод предъявления справки по данному объекту, который, естественно, существует и во всех копиях. Формирование временнЫх отметок выполняется следующим образом:

_root.flow_ci.setTime(_root.beg_ci.getTime()+parseInt(((this._x-88)/_root.scale)*1000*3600*24));
_root.txt_pan.txt3 =_root.flow_ci.getDate() +". "+ (_root.flow_ci.getMonth()+1) +
". " + _root.flow_ci.getFullYear();


_root.flow_ci.setTime(_root.beg_ci.getTime()+parseInt(((this._x-88+this._width)/_root.scale)*1000*3600*24));
_root.txt_pan.txt4 =_root.flow_ci.getDate() +". "+ (_root.flow_ci.getMonth()+1) +
". " + _root.flow_ci.getFullYear();

    И последнее. После отладки приложения вынесите поля ввода за пределы сцены. Поскольку каждому из них присвоена переменная, то и обращайтесь к ним из HTML в соответствии с логикой расчета.
   
  © 2002-2004   Сединко А.М.
  © 2004 design by   kir
Hosted by uCoz