Macromedia Flash MX. Задание № 16.2. Создание интерактивных фильмов. «Создание сценария для клипа. Танк» | язык ActionScript | обработчик onClipEvent | событие enterFrame | событие Load | координаты символа | свойство rotation
Создание интерактивных фильмов
Создание сценария для клипа. «Танк»
-
Откройте приложение Macromedia Flash
-
Создайте движущийся танк, взяв за основу пункты 1-10 задания 16.1:
В моём примере это выглядит так:
onClipEvent (enterFrame) {
if (Key.isDown(Key.LEFT)) {
gotoAndStop(3);
} else {
gotoAndStop(1);
}
}
onClipEvent (enterFrame) {
if (Key.isDown(Key.DOWN)) {
gotoAndStop(3);
} else {
gotoAndStop(1);
}
}
onClipEvent (enterFrame) {
if (Key.isDown(Key.UP)) {
gotoAndStop(3);
} else {
gotoAndStop(1);
}
}
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;}
}
-
Для выстрела создайте ещё одну клавишу-клип, например
<Ctrl>
.
Напишите код, обрабатывающий поведение этой клавиши:
onClipEvent (enterFrame) {
if (Key.isDown(Key.CONTROL)) {
gotoAndStop(3);
} else {
gotoAndStop(1);
}
}
-
Под слоем-маской создайте новый маскируемый слой, в котором создайте клип-выстрел.
-
Напишите код, обрабатывающий движение клипа-выстрела с помощью следующей процедуры:
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;
}
}
-
Готовое изображение сохраните в своей папке в формате
*.fla
-
Протестируйте фильм, нажав сочетание клавиш
<Ctrl>+<Enter>
.
Готовый интерактивный флеш-фильм
Все представленные материалы являются интеллектуальной собственностью.
При цитировании материалов ссылка на сайт обязательна!
Обратная связь: admin@modern-computer.ru