Дострочное пересдача экзамена
|
Знакомство с ActionScript
Процесс планирования
Приступая к созданию проекта, который будет работать под управлением Actionscript, следует прежде всего заняться планированием. Гораздо лучше разрешить возможные проблемы уже на стадии обдумывания, чем бороться с ними по мере возникновения – на стадии разработки, что зачастую требует больших затрат времени и сил.
Многие решения следует принять заранее, даже прежде, чем открыть Flash, не говоря уж о написании скриптов. Самый лучший способ – задать себе серию вопросов.
Что вообще должно происходить?
Это самый важный вопрос в процессе планирования. Ваш ответ на него должен быть как можно более ясным и информативным, однако избегайте слишком вдаваться в детали.
Что касается проекта, созданием которого мы займемся в этом упражнении, то мы собираемся создать сцену, которая будет служить интерфейсом для системы оплаты счетов за электричество. Мы хотим, чтобы сумма счета загружалась в фильм из внешнего источника – текстового файла. Затем мы позволим пользователю ввести в текстовое поле сумму, которую он хочет заплатить. При нажатии кнопки сумма, которую пользователь платит, будет сравниваться с суммой, которую он должен, и на экране будет отображаться визуальная и текстовая информация (некое сообщение), в зависимости от результата – переплатил пользователь, недоплатил или внес ровно столько, сколько нужно. Как только пользователь отпустит кнопку, все визуальные и текстовые элементы сцены должны вернуться к своему первоначальному состоянию. Скрипт, который будет все это выполнять, и станет главным скриптом проекта.
Какие данные мы должны отслеживать?
Иными словами, сколько переменных нужно для функционирования приложения? В нашем случае нужна сумма счета за электричество – $60. Кроме того, мы должны отслеживать разность между этой суммой и суммой, уплаченной пользователем, чтобы мы могли вывести эту разницу в наших сообщениях.
Что должно произойти в фильме, прежде чем начнется выполнение скрипта?
В нашем проекте первым делом должна быть установлена сумма счета за электричество. Ведь главная цель проекта – сравнивать сумму счета с суммой оплаты, и если в самом начале фильма не будет определена сумма счета, то нечего будет и сравнивать при выполнении скрипта. Создание переменных (или констант) и присвоение им значений до начала выполнения программы (скрипта) либо до начала воспроизведения фильма называется инициализацией данных; это общая практика в программировании, от глаз пользователя же этот процесс обычно скрыт.
Теперь надо подумать о том, как эти данные – сумма счета – попадут в фильм. Мы можем поместить их в фильм в процессе создания, а можем загрузить из внешнего источника (например, с сервера или из файла) уже в процессе проигрывания фильма. Для нашего проекта мы предпочтем последнее: применим простенький скрипт для загрузки в фильм текстового файла, содержащего сумму счета ($60). Текстовый или иной файл, из которого в фильм загружаются данные, называется источником данных.
Какое событие будет запускать основной скрипт?
В нашем случае ответ очевиден: нажатие кнопки. Вообще же во Flash запускать скрипты могут любые события, поэтому этот вопрос следует обдумать. Должно ли что-нибудь происходить в фильме, когда пользователь перемещает мышь, нажимает или отпускает кнопку мыши либо нажимает ту или иную клавишу на клавиатуре? А как насчет момента, когда фильм-символ появляется на сцене? Это ведь тоже событие. А может быть, что-то должно повторяться или происходить непрерывно, пока проигрывается фильм? Такие события мы обсудим в деталях в следующем уроке.
Должны ли при запуске основного скрипта приниматься какие-либо решения?
Как только будет запущен основной скрипт нашего фильма, должно быть выполнено сравнение суммы, введенной пользователем, с суммой которую он должен, чтобы определить, заплатил ли он слишком много, слишком мало или ровно. Ответ на этот вопрос будет определять то, какое сообщение будет выведено на экран, и что вообще будет происходить на экране.
Какие элементы составляют сцену? Каково их назначение?
Наша сцена будет состоять из нескольких элементов, некоторым из которых нужно будет дать имена, чтобы ActionScript мог их использовать, управлять ими и взаимодействовать с ними. В нашей сцене необходима кнопка, запускающая скрипт, которую, в свете нашего проекта (каламбур!), мы можем сделать в виде выключателя света, "тумблер" которого будет перемещаться вверх и вниз при нажатии/отпускании.
Также нам требуется динамическое текстовое поле для отображения суммы счета, назовем его owed. Еще нам нужно текстовое поле для ввода, в котором пользователь будет указывать сумму, которую он желает заплатить; это поле назовем paid. Кроме того, необходимо еще одно динамическое поле, в котором будет выводиться сообщение, генерируемое скриптом; это поле пусть называется message. И наконец, нужно "сообщение" визуальное – мы добавим на сцену большую электролампочку. Сначала, когда пользователь еще ничего не заплатил, она будет "погашена". Если пользователь заплатит точную сумму по счету, лампочка засветится, а если он переплатит – лампочка раскалится. Лампочка эта будет представлять собой фильм-символ с именем light.
Как будет выглядеть сцена?
Каким угодно способом – в графическом редакторе или просто даже на салфетке – изобразите примерный набросок вашей сцены (отобразите не только ее внешний вид, но те действия, которые будут в ней происходить). Сюда следует включить всю информацию, какую вы собрали на данный момент. Эту важную часть работы часто называют раскадровкой.
Став мастером ActionScript и разработав несколько проектов, вы уже будете задавать себе все эти вопросы (и отвечать на них) интуитивно. Но, независимо от мастерства, раскадровка останется важнейшей частью процесса планирования.