Macromedia Flash MX. Задание № 16.2. Создание интерактивных фильмов. «Создание сценария для клипа. Танк» | язык ActionScript | обработчик onClipEvent | событие enterFrame | событие Load | координаты символа | свойство rotation

Внимание, откроется в новом окне! ПечатьE-mail

Создание интерактивных фильмов

Создание сценария для клипа. «Танк»

  1. Откройте приложение Macromedia Flash

  2. Создайте движущийся танк, взяв за основу пункты 1-10 задания 16.1:


    Создание нового флеш-фильма


    В моём примере это выглядит так:


    Cимвол-кнопка влево


    onClipEvent (enterFrame) {
      if (Key.isDown(Key.LEFT)) {
        gotoAndStop(3);
      } else {
        gotoAndStop(1);
      }
    }




    Cимвол-кнопка вниз


    onClipEvent (enterFrame) {
      if (Key.isDown(Key.DOWN)) {
        gotoAndStop(3);
      } else {
        gotoAndStop(1);
      }
    }




    Cимвол-кнопка вверх


    onClipEvent (enterFrame) {
      if (Key.isDown(Key.UP)) {
        gotoAndStop(3);
      } else {
        gotoAndStop(1);
      }
    }




    Cимвол-кнопка вправо


    onClipEvent (enterFrame) {
      if (Key.isDown(Key.RIGHT)) {
        gotoAndStop(3);
      } else {
        gotoAndStop(1);
      }
    }




    Создание в флеш-фильме символа-клипа


    onClipEvent (load) {
      // Объявление и установка переменной скорости
      speed = 5;
    }




    onClipEvent (enterFrame) {
      // Движение влево, вправо, вперёд, назад
      if (Key.isDown(Key.LEFT) && !Key.isDown(Key.RIGHT)) {
        _x -= speed;
        _rotation = 270;
      }
      if (Key.isDown(Key.RIGHT) && !Key.isDown(Key.LEFT)) {
        _x += speed;
        _rotation = 90;
      }
      if (Key.isDown(Key.UP) && !Key.isDown(Key.DOWN)) {
        _y -= speed;
        _rotation = 0;
      }
      if (Key.isDown(Key.DOWN) && !Key.isDown(Key.UP)) {
        _y += speed;
        _rotation = 180;
      }
      //
      // Движение по диагонали
      if (Key.isDown(Key.LEFT) && Key.isDown(Key.UP) && !Key.isDown(Key.RIGHT) && !Key.isDown(Key.DOWN)) {
        _rotation = 315;
      }
      if (Key.isDown(Key.RIGHT) && Key.isDown(Key.UP) && !Key.isDown(Key.LEFT) && !Key.isDown(Key.DOWN)) {
        _rotation = 45;
      }
      if (Key.isDown(Key.LEFT) && Key.isDown(Key.DOWN) && !Key.isDown(Key.RIGHT) && !Key.isDown(Key.UP)) {
        _rotation = 225;
      }
      if (Key.isDown(Key.RIGHT) && Key.isDown(Key.DOWN) && !Key.isDown(Key.LEFT) && !Key.isDown(Key.UP)) {
        _rotation = 135;
      }
      //
      // возвращение на противоположную сторону замаскированной области
      // когда танк уходит с экрана
      if (_y<-35) {_y = 335;}
      if (_y>335) {_y = -35;}
      if (_x<250) {_x = 655;}
      if (_x>655) {_x = 250;}
    }




  3. Для выстрела создайте ещё одну клавишу-клип, например <Ctrl>.


    Добавление в флеш-фильм символа-кнопки из стандартной библиотеки


    Напишите код, обрабатывающий поведение этой клавиши:


    Cимвол-кнопка CTRL


    onClipEvent (enterFrame) {
      if (Key.isDown(Key.CONTROL)) {
        gotoAndStop(3);
      } else {
        gotoAndStop(1);
      }
    }


  4. Под слоем-маской создайте новый маскируемый слой, в котором создайте клип-выстрел.

  5. Напишите код, обрабатывающий движение клипа-выстрела с помощью следующей процедуры:



    onClipEvent (load) {
      _visible = false;
      speed = 15;
    }




    onClipEvent (enterFrame) {
      if (Key.isDown(Key.CONTROL)) {
        //Определение координат выстрела
        _rotation = _root.Tank._rotation;
        _x = _root.Tank._x;
        _y = _root.Tank._y;
        switch (_rotation) {
          case 0:
            _y -= 35;
            break;
          case 45:
            _y -= 20;
            _x += 20;
            break;
          case 90:
            _x += 35;
            break;
          case 135:
            _x += 20;
            _y += 20;
            break;
          case 180:
            _y += 35;
            break;
          case -135:
            _y += 20;
            _x -= 20;
            break;
          case -90:
            _x -= 35;
            break;
          case -45:
            _x -= 20;
            _y -= 20;
            break;
        }
        //выстрел
        gotoAndPlay(1);
        _visible = true;
      }
      //движение выстрела
      switch (_rotation) {
        case 0:
          _y -= speed;
          break;
        case 45:
          _y -= speed;
          _x += speed;
          break;
        case 90:
          _x += speed;
          break;
        case 135:
          _x += speed;
          _y += speed;
          break;
        case 180:
          _y += speed;
          break;
        case -135:
          _y += speed;
          _x -= speed;
          break;
        case -90:
          _x -= speed;
          break;
        case -45:
          _x -= speed;
          _y -= speed;
          break;
      }
    }


  6. Готовое изображение сохраните в своей папке в формате *.fla


  7. Протестируйте фильм, нажав сочетание клавиш <Ctrl>+<Enter>.

Готовый интерактивный флеш-фильм


Все представленные материалы являются интеллектуальной собственностью.
При цитировании материалов ссылка на сайт обязательна!


Обратная связь: admin@modern-computer.ru