iralebedeva.ru :: зелёный коллаж с цветами
КОНТАКТЫ
E-mail: ira.alma@gmail.com

iralebedeva.ru :: зелёный коллаж с цветами
опубликовано 10.03.2004 (г. Алма-Ата)
Flash-мастерская зелёных страничек
Уроки информатики (лекционные материалы и практикумы)
Лекционные материалы, домашние задания и тесты
дистанционного курса «Электронная школа Macromedia Flash MX»
Российская еженедельная методическая газета для учителей информатики. Издательский дом «Первое сентября» № 42 (2003 год)
«Аналог программы «Правилка» из пакета «Хиты Роботландии»
в среде Macromedia Flash».

Печатные публикации


ЭЛЕКТРОННАЯ ШКОЛА MACROMEDIA FLASH MX
III курс: Основы программирования в Macromedia Flash MX
Модуль IV: Команда with. Программа «Правилка»
Язык ActionScript

Экспресс-план модуля:
  • Команда with
  • Flash-дублёр программы «Правилка» из пакета «Хиты Роботландии».

Команда with

При использовании объектов в программном коде (скрипте) нетрудно заметить, что даже в небольшом блоке скрипта неоднократно повторяется название одного и того же объекта. Особенно часто подобные повторения происходят при использовании некоторых отдельных объектов, например объектов Math, относящихся к верхнему уровню. Например, следующий код является довольно распространённым:

a = Math.PI * r * r;
x = r * Math.cos(Math.PI);
y = r * Math.sin(Math.PI/2);

Здесь объект Math встречается неоднократно, что затрудняет восприятие скрипта. Эту запись можно значительно упростить, если блок скрипта заключить в скобки, воспользовавшись командой with. Тогда в пределах данного блока скрипта интерпретатор ActionScript будет обращаться к указанному объекту. Теперь код можно переписать в следующем виде:

with (Math) {
a = PI * r * r;
x = r * cos(PI);
y = r * sin(PI/2);
}

Давайте познакомимся с общим форматом команды:

with (object) {
statement(s);
}

object — экземпляр ActionScript объекта или Movie Clip.

statement(s) — команда или группа команд, заключенных в фигурные скобки.

Давайте разберём ещё один пример, в котором в качестве объекта используется MovieClip с именем someOtherMovieClip:

with (someOtherMovieClip) {
_x = 50;
_y = 100;
gotoAndStop(3);
}

Следующий отрывок скрипта показывает, как можно написать предшествующий пример без использования команды with:

someOtherMovieClip._x = 50;
someOtherMovieClip._y = 100;
someOtherMovieClip.gotoAndStop(3);

Возможно использование вложенных команд with для доступа к информации во многих контекстных областях.

Flash-дублёр программы «Правилка» из пакета «Хиты Роботландии»

В ходе программирования работы кнопок мы активно будем использовать оператор ветвления: if и if else. А также организуем работу счётчика, прибавляющего очки пользователю в случае правильного ответа и отнимающего очки, в случае когда, не исправив ошибку, или произведя некорректные исправления, пользователь нажмёт кнопку «Далее».

Организуем работу Movie Clip (priz), в котором будет размещён «Призовой фонд». В том случае если пользователь наберёт 10 очков, его приз будет представлять собой корзину с аппетитными фруктами. Если в копилке пользователя окажется 9 или 8 очков в качестве приза он получит кусок сыра, если пользователю «посчастливится» набрать 6 или 7 очков он получит тыкву, ну а в том случае если он наберёт 5 или менее 5 очков ему достанется помидор!

Для любителей пятибалльной оценки переведём вышесказанное на доступный для школьного журнала язык:

Корзина с фруктами — 5;
Кусок сыра — 4;
Тыква — 3;
Помидор — 2.

При обращении к Movie Clip мы будем использовать команду with.

Палитра Timeline: 11 кадров с акциями

На нашей сцене будет использовано 11 кадров. Первые 10 кадров будут представлять собой «рабочие листы», на которых будут размещены словосочетания с грамматическими ошибками (Input Text). Обычно поля ввода оставляют пустыми, но в нашем случае они должны работать! На каждом листе будет запрограммирована работа динамического поля. В том случае если пользователь не исправит грамматическую ошибку, в него будет выведен текст: «Вы не исправили ошибку!».

В данной программе использованы два слоя. Нижний слой — background на нём размещён статический текст «Программа Правилка», и графический символ со шляпой.

Практический совет:

В том случае если вы непременно хотите использовать в программе для написания заголовка какой-нибудь экзотический шрифт, установленный на вашей машине, не забудьте использовать для этого текста процедуру Break Apart из меню Modify. Иными словами, превратите текст в графику. И тогда ваш текст не превратится в абракадабру на машине, где этого шрифта нет!

Теперь всё по порядку. 1 кадру пропишем скрипт:

stop();
fscommand("showmenu", "false");
i = 0;

При проигрывании ролика необходимо отключить «Меню». Таким образом, мы не позволим пользователю сделать «шаг назад». И ещё мы «включаем» счётчик.
2-10 кадру пропишем акцию:

stop();

Работу кнопок рассмотрим на примере первого кадра. Остальные кнопки вы сможете запрограммировать самостоятельно.

on (release) {
    if (t1=='Белая хризантема') {
        i++;
        gotoAndPlay(2);
    } else {
        i––;
        z1 = "Вы не исправили ошибку!";
    }
}

Теперь сформируем «Призовой фонд». Создадим новый символ типа Movie Clip с именем priz в котором будут работать 5 кадров. Всем кадрам клипа пропишем акцию:

stop();

Первый кадр клипа будет пустым.

Третий кадр клипа: кусочек сыра (клип: priz)

Во втором кадре поместим корзину с фруктами и пропишем кадру метку: five.
В третий кадр поместим кусок сыра и пропишем кадру метку: four.
В четвёртый кадр поместим тыкву и пропишем кадру метку: three.
В пятый фрейм поместим помидор и пропишем кадру метку: two.

В данной программе всё это «продовольственное разнообразие» было импортировано из коллекции ClipArt97 (wmf-файлы). Впрочем, вы можете сформировать свой собственный «Призовой фонд», всё зависит исключительно от вашей фантазии.

Вернёмся на сцену и на последнем 11 кадре поместим созданный нами клип с призами. Не забудьте прописать его на сцене. Instance Name: priz. Этому кадру пропишем скрипт, который будет, анализируя содержимое счётчика, «выдавать» пользователю приз:

stop();
sh = i;
with (_root.priz) {
    if (i<=5) {
        gotoAndPlay("two");
    } else if (i == 6 || i == 7) {
        gotoAndPlay("three");
    } else if (i == 8 || i == 9) {
        gotoAndPlay("four");
    } else {
        gotoAndPlay("five");
    }
}

Протестируйте ролик. И если это необходимо произведите его отладку.

Практический совет:

Для упрощения процесса тестирования создайте на последнем кадре поле динамического текста с именем sh и в это поле выводите данные счётчика. Для этого в скрипт 11 кадра добавьте второй строкой:

sh = i;

После завершения процесса отладки удалите это поле и прописанную вами строку.

Домашнее задание: Основы программирования в Macromedia Flash MX

О, сколько нам открытий чудных
Готовят просвещенья дух
И опыт, сын ошибок трудных,
И гений, парадоксов друг,
И случай, бог-изобретатель.
Александр Сергеевич Пушкин, «Евгений Онегин»

Ваша задача состоит в создании ролика дублирующего материал, изложенный в этой лекции. Словосочетания вы можете подобрать самостоятельно.

Иллюстративный материал, использованный для формирования «призового фонда» ролика вы сможете найти в архиве, сопровождающем материал лекции. В этом архиве представлены файлы в формате wmf. Если этот призовой фонд не удовлетворяет вашим требованиям, можете смело фантазировать и использовать собственную библиотеку.

Выполненное задание представьте в виде файла в формате fla (если размер файла превысит 150 Кб, пожалуйста, упакуйте файл в архив) и вышлите учителю.

Загрузить архив (78 Kб)

Желаю Вам успехов в самостоятельном изучении Macromedia Flash MX!


Предыдущий модуль:
Модуль III: Безусловный и условный переход
Следующий модуль:
Модуль V: Организация циклов, Решение математических задач




ваш комментарий *
 
ваше имя

защитный код (цифры с картинки) *







statistics
Рейтинг@Mail.ru       Яндекс.Метрика

Распространение материалов сайта приветствуется.
Ссылка на материалы весьма желательна, но не строго обязательна ;-)
«Знание должно служить творческим целям человека. Мало накоплять знания;
нужно распространять их возможно шире и применять в жизни». Рубакин Н.А.