Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Справочник профессионала - Бесли К.

Бесли К., Джиффорд Х. Справочник профессионала — СП ЭКОМ, 2003. — 320 c.
ISBN 5-9570-0011-6
Скачать (прямая ссылка): flashmxvideospravochnikvideo2003.pdf
Предыдущая << 1 .. 59 60 61 62 63 64 < 65 > 66 67 68 69 70 71 .. 87 >> Следующая


236

Раздел 2. Конкретные примеры

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

1. Первая часть отвечает за быструю перемотку вперед, когда пользователь нажимает кнопку. Щелкните на кнопке FWD и на панели Действия введите следующий код:

on (press) {

video mc. onEnterFrame = function () {

video_mc.gotoAndStop (video mc. currentframe + 5); i; ' "

}

Давайте посмотрим, что мы написали. Говоря техническим языком, мы воспользовались функцией обратного вызова. Постараюсь вкратце объяснить, что это значит.

Первая строка говорит о том, что должно что-то произойти, когда пользователь нажимает и удерживает кнопку мыши.

С помощью второй строки мы подключаем к клипу «фикцию». Функция представляют собой составную часть программного кода, позволяющую увеличить функциональность (несмотря на тавтологию) , в данном случае, перематывать видео вперед. Обратите внимание, что она выполняется под значением onEnterFrame, то есть применяется к каждому кадру нашего фильма.

В следующей строке мы записали непосредственно функцию, то есть само выполняемое действие. Выражение video_mc.gotoAndStop означает: перейти в клипе на определенный кадр и остановить показ. Далее записано (video_mc.currentframe +5), этим мы указали, что нужно перейти на пять кадров вперед, то есть к текущему кадру прибавили 5. Таким образом, мы сымитировали ускоренную перемотку.

2. К введенному коду добавим следующий, прекращающий перемотку, когда кнопку отпускается:

on (release) {

videojnc. onEnterFrame = null; video_mc.play ();

}

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

Глава 9. Внутри Flash

237

Вторая строка дает команду окончания выполнения функции перемотки.

Последняя строчка вам уже известна из кода для кнопки PLAY. Она вновь запускает воспроизведение фильма в обычном режиме.

3. Теперь написать код для кнопки RWD будет легко:

on (press) {

video_mc. onEnterFrame=function () {

video mc.gotoAndStop (video mc._currentframe - 5);

}; ’

)

on (release) {

videojnc. onEnterFrame = null; video mc.play ();

)

Никаких проблем, не правда ли? Единственное отличие, как и следовало ожидать, в том, что теперь при выполнении функции перемотки осуществляется переход с текущего положения на пять кадров назад.

4. И, наконец, кнопка SLOW. Мы хотим, чтобы воспроизведение осуществлялось в три раза медленнее, чем в нормальном режиме, пока пользователь удерживает левую кнопку мыши нажатой и изучает новый для себя трюк асов из парка. На панели Действия добавьте к кнопке SLOW следующий код:

on (press) {

videojnc.stop ();

counter = 0;

videojnc. onEnterFrame = function (){ counter ++;

if ((counter % 3) == 0) { video _mc.nextFrame();

}; "

on (release) {

video _mc.onEnterFrame = null; video_mc.play();

}

238

Раздел 2. Конкретные примеры

Некоторые операторы вам уже знакомы. Мы по-прежнему указываем, что функция должна выполняться в течение того времени, пока кнопка нажата; как только кнопка отпускается, применение функции прекращается. Фактически, команда остановки выполнения функции записана так же, как и для кнопок FWD и REW.

Код, выполняемый при нажатом положении кнопки, немного сложнее. Он начинается так же:

on (press) {

Как и раньше, мы хотим, чтобы при нажатии и удерживании кнопки происходило определенное событие.

video mc.stop ();

Этим событием является остановка воспроизведения, поэтому соответствующая команда аналогична коду для кнопки STOP.

counter = 0;

В следующей строке мы объявляем переменную counter и присваиваем ей значение 0. Говоря проще, мы создали счетчик и установили его в начальное (нулевое) положение.

video mc. onEnterFrame = function (){

Этой строчкой мы указали, что, таки в случае с кнопками FWDи REW, к каждому кадру клипа будет применяться функция

counter ++;

На этот раз функция состоит более чем из одной строки. Первая увеличивает значение счетчика на единицу, при каждом переходе к следующему кадру фильма.

if ((counter % 3) == 0) { video_mc.nextFrame();

Следующие две строки можно перевести на обычный язык примерно так: «переходить к следующему кадру через каждые три кадра». То есть проигрыватель отсчитывает по три кадра и показывает следующий. При этом скорость воспроизведения уменьшается в три раза, если вы замените тройку десяткой, то она упадет в десять раз.

Если вам интересно знать более подробно, как осуществляется замедленный показ, то можно дать такое объяснение. С каждым следующим кадром значение счетчика возрастает на единицу, принимая значения 1, затем 2, затем 3 и так далее. После увеличения вычисляется число counter % 3.

Глава 9. Внутри Flash

239

Дело в том, что хорошо известный нам знак процента в мире ActionScript живет двойной жизнью. Вторая, новая нас, его сущность выражается в том, что он исполняет роль модуля. То есть написанием данного символа мы даем команду вычислить остаток от деления одного числа на другое. Например, выражение 5 % 3 означает нахождение остатка от деления 5 на 3, результат — 2. Таким образом, в нашей функции производится переход от текущего кадра к следующему каждый раз, когда остаток от деления его номера на 3 равен нулю. Это будет происходить с каждым третьим кадром (т.е. 3, 6,9,12 и т.д.). Это самый эффективный способ решения подобного рода задач.
Предыдущая << 1 .. 59 60 61 62 63 64 < 65 > 66 67 68 69 70 71 .. 87 >> Следующая