
Информатизация инженерного образования (выпуск 1)
.pdf
П Р И Л О Ж Е Н И Я
движения. Подобные действия выполним для букв Я и Ч с той лишь разницей, что для первого кадра Я находится за верхней границей рабочего листа, а Ч — за правой границей. Изображение на слое Layer 1 нам не понадобится, поэтому этот слой удалим. Создадим теперь проявляющуюся строку Анимированный, которая должна появляться над строкой МЯЧ. Создадим слой Анимированный, в котором разместим одноименную строку. Для реализации эффекта проявления воспользуемся свойством непрозрачности. Для задания непрозрачности текста его необходимо преобразовать в образец с именем Анимированный. Проявление надписи будет осуществляться на временном интервале от 1 до 20 кадра. Перейдем на первый кадр. Выделим надпись. В окне свойств в раскрывающемся списке Color выберем
Рис. П.12.1.36. Настройка непрозрачности текста
Рис. П.12.1.37. Временная шкала заставки
Рис. П.12.1.38. Анимированная заставка
814

П р и л о ж е н и е 12.1
Рис. П.12.1.39. Анимированные мячи
пункт Alpha, соответствующий настройке непрозрачности объекта. Зададим непрозрачность в поле справа от списка Color равной 0 % (рис. П.12.1.36).
Это можно также сделать с помощью регулятора, отображаемого нажатием кнопки с черным треугольником справа от поля ввода значения непрозрачности. Создадим 20 ключевой кадр. Зададим непрозрачность равную 100 % (надпись полностью проявилась на экране). Временная шкала заставки нашей анимации имеет вид, представленный на рис. П.12.1.37.
Запустим фильм на выполнение. Вначале будет проигрываться заставка
(рис. П.12.1.38), |
за которой следует собственно сама анимация с мячиками |
(рис. П.12.1.39). |
|
Управление фильмом
При запуске фильма последовательно проигрываются сцены 1 и 2. Фильм может демонстрироваться как один раз, так и в бесконечном цикле. Зададимся вопросом, а можно ли изменить логику выполнения ролика. Например, после вывода заставки переходить на демонстрацию анимации не сразу, а только по нажатию кнопки. Сделать это средствами Flash достаточно просто. Сначала создается кнопка. К событию «нажатие кнопки» привязывается действие (сценарий) — переход на первый кадр сцены 2. Сценарий, связанный с событием называется обработчиком.
Итак, создаем кнопку перехода к анимации мячей. Создадим слой Кнопка, в нем в 20 кадре пустой кадр и разместим там текстовой объект со строкой Просмотреть. Преобразуем строку в образец-кнопку, выбрав в меню Modify | Convert to Symbol (Модифицировать | Преобразовать в образец). На экране появится диалоговое окно Convert to Symbol, совпадающее с окном Symbol Properties, приведенном на рис. П.12.1.29. Введем в поле Name имя образца Look_button. Дважды щелкнем мышью на экземпляре кнопки, после чего окажемся в окне
815

П Р И Л О Ж Е Н И Я
редактирования кнопки-образца. Образец-кнопка включает в себя четыре кадра с названиями: Up, Over, Down и Hit (рис. П.12.1.40).
Эти кадры содержат изображения кнопок в окне для различных случаев:
•кнопка не нажата и курсор мыши не находится над ней (кадр Up);
•кнопка не нажата, но курсор мыши находится над ней (кадр Over);
•кнопка нажата (кадр Down);
•в кадре Hit задается прямоугольная область, которая откликается на щелчки мыши, это изображение не показывается Flash.
Скопируем кадр Up в кадры Over и Down созданием ключевых кадров. Подкорректируем полученные кадры. Зададим красный цвет кнопки при ее нажатии или щелчке мышью соответственно синий при нахождении указателя мыши над ней. Итак, кнопка подготовлена. Остается написать для нее обработчик события. Он имеет следующий вид:
on(<Событие>) {
Сценарий (Код обработчика)
}.
Сценарий заключается в фигурные скобки. Нажатию кнопки соответствует событие Press. Переход на кадр с проигрыванием осуществляется с помощью команды gotoAndPlay(<Сцена>,<Кадр>). Имя сцены задается текстовой строкой. При нажатии кнопки выполняется переход на первый кадр сцены 2. Таким образом, окончательно обработчик события нажатия кнопки примет вид:
on(press) {
gotoAndPlay(«Scene 2»,1);
};
Привяжем обработчик к кнопке Посмотреть. В окне документа нажмем на изображение кнопки и воспользуемся панелью Actions. Для отображения этой панели необходимо выбрать в меню Window | Actions (Окно | Действия). Панель приведена на рис. П.12.1.41.
В верхней части окна указан объект, к которому привязан сценарий — в нашем случае кнопка. Сценарий можно привязывать к кадрам и клипам (последовательности кадров, размещенных в библиотеке). Введем в окно сценария текст обработчика. Эта панель является мощным инструментом для написания и отладки сценариев. Новичкам при написании сценариев ActionScript может помочь иерархический список команд и операций языка, который отображается нажатием кнопки со списком в виде крестика в левом углу окна (рис. П.12.1.42).
Рис. П.12.1.40. Кадры кнопки
816

П р и л о ж е н и е 12.1
Рис. П.12.1.41. Панель Actions
Рис. П.12.1.42. Иерархический список команд и операций панели Actions
Пользуясь этим инструментом, можно не писать код вручную, а вставлять команды с панели. В процессе работы можно получить справку о команде, для этого необходимо указать курсором или щелкнуть мышью на команде в окне и нажать кнопку в виде книги в правой верхней части панели. При этом будет отображено окно справки с информацией о выбранной команде. Для удобства отладки строки сценария могут быть пронумерованы с помощью установки флажка View Line Number меню настройки внешнего вида панели. Это меню отображается нажатием кнопки со списком (крайней справа в верхнем правом углу панели).
В Flash предусмотрены инструменты отладки сценариев. Так, можно задать, удалить точки останова для отлаживаемого кода с помощью команд Set Breakpoint, Remove Breakpoint, Remove All Breakpoint меню, вызываемого нажатием кнопки с изображением лассо в правом верхнем углу.
Обработчик нажатия кнопки мы написали, заодно познакомились с панелью Actions. Остается остановить анимацию после 20 кадра. Выберем 20 кадр любого слоя, вызовем панель Actions и разместим на ней команду stop(). Все, фильм готов.
817

П Р И Л О Ж Е Н И Я
Сборка виртуального лабораторного стенда
Виртуальный лабораторный стенд представляет собой имитацию на экране компьютера работы реального лабораторного стенда. Он содержит виртуальные приборы и устройства, включенные в соответствии с определенной электрической схемой. Каждое устройство имеет определенное функциональное назначение и характеризуется набором свойств. Например, генератор переменного напряжения характеризуется частотой и амплитудой выходного сигнала.
Как правило, лабораторные стенды можно собирать из некоторого набора готовых приборов и устройств. Это приводит к необходимости унификации виртуальных приборов для многократного использования в различных виртуальных лабораторных работах. Многократно используемые приборы и устройства виртуальных лабораторных работ удобно оформлять в виде компонентов Flash.
Компонент — функционально законченный объект со своими настраиваемыми свойствами, методами и событиями. Компонент Flash представляет собой клип, который может содержать также графические и мультимедийные элементы. Компоненты призваны облегчить процесс создания приложений.
Как правило, с помощью компонентов реализуются наиболее часто используемые функции. В поставку Flash входит большое число пользовательских компонентов для построения графического пользовательского интерфейса приложений и работы с данными.
Использование готовых компонентов достаточно просто. Нужно открыть панель Components (если панель не отображается, то следует установить флажок для подпункта Components пункта Development Panels в меню Window) (рис. П.12.1.43).
Рис. П.12.1.43. Пользовательские компоненты Flash
818

П р и л о ж е н и е 12.1
Далее нужно выбрать компонент и перетащить его в приложение.
Если компонент составной, т.е. содержит в своем составе другие компоненты, то нужно перетащить в документ и составляющие компоненты, иначе их не будет видно. После этого перетащенные составляющие компоненты можно удалить. К сожалению, так уж устроен Flash.
Настройка компонентов — задание значений свойств осуществляется в панели свойств Properties или инспекторе компонент Components Inspector (рис. П.12.1.44).
Значения свойств компонентов задаются также с помощью программного кода. Если необходимо, можно написать сценарии обработчиков событий компонента, и приложение готово!
Появился даже термин сборочное программирование, указывающий на то, что создание программы заключается в сборке приложения из готовых. Сборочное программирование предполагает, что имеется в наличии широкий выбор компонентов на все случаи жизни. Не всегда это так, иногда не удается найти или приобрести нужный компонент, необходимый для функционирования приложения, поэтому в ряде случаев (особенно при создании виртуальных лабораторных практикумов) приходится создавать собственные компоненты. Здесь вопросы создания компонентов Flash не обсуждаются.
Рассмотрим модельный пример — создание виртуального лабораторного стенда для исследования фигур Лиссажу.
Рис. П.12.1.44. Свойства компонента Кнопка
819

П Р И Л О Ж Е Н И Я
Стенд включает в себя двухлучевой осциллограф, на входы X и Y которого подается переменное напряжение различной величины и частоты. Отображаемая при этом на экране осциллографа кривая носит название фигуры Лиссажу.
Перед тем как заняться сборкой, определимся какие элементы управления, регулирования и отображения информации должны включать в себя наши виртуальные приборы. Для осциллографа это:
•регуляторы масштабов по X и Y;
•регуляторы смещения изображения по X и Y;
•кнопка включения/выключения;
•клеммы для подключения к входам X и Y;
•табличка с названием прибора;
•экран осциллографа;
Для генераторов можно выделить следующие элементы:
•цифровые дисплеи отображения частоты и величины напряжения;
•переключатели пределов изменения частоты и напряжения;
•регуляторы частоты и амплитуды напряжения;
•табличка с названием прибора;
•клеммы подключения к прибору;
•кнопка включения/выключения.
Все эти элементы должны быть созданы заранее и присутствовать в библиотеке компонентов.
Вначале необходимо определиться с размером окна, в котором будет размещаться стенд. Будем исходить из разрешения экрана компьютера 600×800 и зададим окно размером 550×590 пикселей.
Теперь займемся компоновкой. Создадим слои для каждого компонента. Приборы будем располагать друг под другом — в верхней части экрана осциллограф, под ним два генератора напряжений для подачи сигналов на входы X и Y осциллографа. Приборы будем размещать на минимальном расстоянии по вертикали друг от друга и вблизи от левой границы окна. В правой части окна оставим поле, где будут размещаться электрические соединения.
Сборка стенда осуществляется перетаскиванием мышью компонентов из панели Components в документ. Виртуальные приборы и устройства для сборки лабораторных стендов сосредоточены в папке Custom Components (Пользовательские компоненты) панели компонентов (рис. П.12.1.45). Осциллографу соответствует компонент Devices.OscS, генератору напряжения Devices.SimpleGenerator.
Нужно не забыть перетащить в документ составляющие компоненты Devices.FourStateButton, Devices.Stepper, Devices.Regulator, Devices.MultimeterComponent, а затем удалить их. Если этого не сделать, то составляющие компоненты не будут отображаться в виртуальных приборах.
Для доступа к свойствам приборов необходимо задать их имена. Так, осциллографу присвоим имя osc, а генераторам genY и genX соответственно. Рассмотрим более подробно свойства виртуальных приборов.
Свойства осциллографа и их значения приведены на рис. П.12.1.46: beam — номер луча многолучевого осциллографа, принимает значения от 0 до 3; beamColor
— цвет луча, в поле значений справа отображается цвет луча и его шестнадцатиричный код, цвет задается щелчком на прямоугольнике с отображаемым текущим цветом, вызывается палитра, в которой выбирается нужный цвет; enabled —
820

П р и л о ж е н и е 12.1
Рис. П.12.1.45. Папка с компонентами для сборки виртуальных лабораторных работ
Рис. П.12.1.46. Панель свойств виртуального осциллографа
Рис. П.12.1.47. Панель свойств генератора
булево, свойство, определяющее работоспособность устройства; On — булево свойство для включения, выключения устройства. При включении/выключении осциллографа возбуждается событие change, которое возвращает булево свойство On, отражающее состояние осциллографа.
В свою очередь генератор напряжения описывается свойствами, приведенными на рис. П.12.1.47.
821

П Р И Л О Ж Е Н И Я
Свойство ampRange представляет собой строку, определяющую диапазоны значений амплитуд сигнала, например «0.1,1,10». Для включения, выключения и определения работоспособности прибора служат булевы свойства прибора enabled и On. Диапазон частот задается строковым свойством freqRange, например «10,100,1000». С компонентом связывается событие change, возбуждающееся при включении/выключении, изменении свойства enabled, изменении частоты и амплитуды сигнала. Обработчику события передается объект data c полями: freq — текущая частота, amp — текущая амплитуда сигнала, data — массив, содержащий данные вида [[t0,A0], [t1,A1],..., [tN,AN]], где ti — значения времени на интервале [0,1], Ai — значения амплитуды. Свойство N задает размерность массива data, по умолчанию оно принимает значение 100.
Для сборки электрических схем разработан компонент-соединитель Devices.Connection. При размещении на рабочем поле он отображается в виде двух кружочков, размещенных в левом верхнем и нижнем правом углах прямоугольника (рис. П.12.1.48).
Перекрестие в левом верхнем углу задает координаты компоненты X и Y соединителя. Клеммы помещаются в нужное место в результате воздействия на маркеры трансформации прямоугольника, в вершинах которого располагаются клеммы. Возможно позиционирование компонента с помощью ввода высоты, ширины и координат компонента в поля H, W, X, Y панели свойств. После того как клеммы размещены в нужных местах, необходимо прорисовать изображение электрического соединения, преобразовать его в клип и присвоить ему имя.
Пусть необходимо сделать четыре клипа электрических соединений: два для подключения генератора к входу X и два для подключения к входу Y. Для выполнения
Рис. П.12.1.48. Компонентсоединитель
Рис. П.12.1.49. Собранный лабораторный стенд с виртуальными приборами-компонентами
822

П р и л о ж е н и е 12.1
соединения во время работы стенда необходимо зацепить мышью одну из клемм и перетащить на другую клемму. Если соединение выполнено правильно, то клип
ссоединяющей линией станет видимым, иначе клемма медленно вернется на место.
Спомощью свойства cntClipName компоненту Connection передается имя клипа
сизображением соединения. Булево свойство isConnected определяет правильность соединения и принимает значение true в случае правильного соединения. Цвет границы и фона клеммы задаются свойствами clampColor и clampBg соответственно радиус — clampR. Работоспособность компонента определяется свойством enabled. Толщина обводки клеммы определяется свойством thickness. С компонентом связано событие connected, возбуждаемое при осуществлении соединения, обработчик события получает объект со свойством connection — клипом соединения.
На этом завершается сборка стенда (рис. П.12.1.49).
В таком виде стенд никак не реагирует на действия пользователя. Нужно написать достаточно простой код, чтобы приборы можно было бы включить, регулировать амплитуду и частоту сигналов, отображать их на осциллографе, а перед началом работы осуществить электрические соединения. Пользователя необходимо предупредить о необходимости осуществления электрических соединений. Поэтому создадим самый верхний слой Message с окном-предупреждением в виде динамического текстового блока (рис. П.12.1.50).
Блоку присвоим имя msg_txt. Сценарий привяжем кадру слоя, в котором размещается виртуальный осциллограф.
Рис. П.12.1.50. Текстовой блок с сообщением и его свойства
823