Гистограмма
Итак, сценарий для кнопки имеет следующий вид:
on(release) { // Начальные значения переменных x = 0; n = 0; l = 0; value = 0; k = 0; // масштабирующий коэффициент maximum = 0; // Установка начальной высоты и позиции всех столбиков while (x <= 4) { x += 1; _root[x]._yscale = 100; _root[x]._y = 300; } // Определение максимального значения, // введенного пользователем while (n <= 4) { n += 1; if (_root["T" + n] > maximum) (maximum = _root["T" + n]; } } // Определение высоты столбика k = 300 / maximum; // масштабирующий коэффициент while (i <= 4) { i += 1; value = _root["T" + i] * K; _root[d]._yscale = value * 100; _root[d]._y = 300 - value; }Поясним определение высоты столбика. Мы использовали свойство _yscale, возвращающее относительную высоту (масштаб) мультфильма (т. к. столбик у нас имеет тип Movie Clip) в процентах. Одному пикселу соответствует 100%, поэтому величине value (в пикселах) соответствует _yscale, ранное value* 100. Изменив высоту столбика, следует изменить и его вертикальную координату _у, задаваемую и пикселах. Чем выше столбик, тем меньше _у и, наоборот, чем меньше высота столбика, тем ниже он должен позиционироваться. Поскольку максимальная высота столбика равна 300 пикселов, _у = 300 – value. Текстовые поля с именами Т1,…, Т5 обрабатываются циклически с помощью так называемого псевдомассива _root ["T" + i]. Параметр, означающий имя текстового поля, получается путем конкатенации (склейки) буквы "Т" с параметром цикла \.
Заметим, что конструкция псевдомассива _root ["T" + i] применяется вместо использовавшейся в Flash 4 функции eval. В данном случае можно было бы использовать выражение вида:
eval("/:T" & i)Рассмотренный выше сценарий можно немного модифицировать, сделав его более понятным, а функционально эквивалентным. А именно: заменим часть, связанную с определением высоты столбика, на следующую:
// Определение высоты столбика k = 300 / maximum; // масштабирующий коэффициент while (i <= 4) { d += 1; value = _root["T" - i] * k; _root[d]._height = value; root[d].y = 300 - value; }Здесь мы вместо свойства _yscale использовали свойство _height, значением которого является абсолютная высота столбика, выраженная в пикселах. Ниже показан внешний вид мультфильма.

Рис. 622. Гистограмма, построенная на основе введенных пользователем данных
При разработке гистограмм в слое Фон вы можете нарисовать оси координат и/или масштабную сетку, раскрасить столбики в различные цвета и т. п. Данные для построения гистограммы можно брать не только из текстовых полей в этом же мультфильме, но и из полей, расположенных в каком-нибудь другом мультфильме или даже из другого приложения. Например, данные могут вводиться в форму HTML-документа и передаваться в мультфильм, отображающий гистограмму (см. раздел "Передача данных из Jscript в ActionScript" данной главы).
Кроме гистограмм, можно рисовать графики в виде кривых. Такая кривая линия состоит из прямых отрезков и строится на основе двух массивов данных. Первый массив – числа, откладываемые по горизонтальной оси координат, а второй – числа, откладываемые по вертикальной оси координат.
