| movie - указатель фильма |
|
Возвращает True, если указанный фильм воспроизводится в данный момент.
Смотрите также : OpenMovie, DrawMovie, CloseMovie, MovieWidth, MovieHeight. |
| ; Пример Movie Commands ; ====================== ; Демонстрируются следующие команды: ; ; OpenMovie ; MovieHeight ; MovieWidth ; MoviePlaying ; DrawMovie ; Начальные константы Const WIDTH = 640 Const HEIGHT = 480 ; Первым делом установим графический режим Graphics WIDTH, HEIGHT SetBuffer BackBuffer() ClsColor 0,0,0 Color 0,255,0 ; Теперь откроем файл с анимацией. Можно использовать файлы AVI или MPEG. movie=OpenMovie("media/hat.gif") ; Выясняем, как произошла загрузка файла If movie=0 Then RuntimeError "Ошибка - такого файла нет!" If Not(MoviePlaying(movie)) Then RuntimeError "Ошибка - фильм не воспроизводится!" ;Определим размер окна фильма w=MovieWidth(movie) ; ширина h=MovieHeight(movie) ; высота ; Установим координаты и синхронизацию x=(WIDTH-w)/2 ; координата x окна с фильмом y=(HEIGHT-h-100)/2 ; координата y окна с фильмом period=100 ; задержка между кадрами time=MilliSecs() ; время последнего обновления ; Здесь начинается главный цикл Repeat ; Делаем задержку ; Файлы GIF не содержат информации о синхронизации, поэтому выводим следующий кадр при помощи команды DrawMovie. ; Файлы AVI и MPEG содержат информацию синхронизации и тоже выводят следующий кадр при каждом вызове DrawMovie. ; Поэтому, следующий цикл требуется только для формата GIF. Repeat Until MilliSecs()-time>=period time=MilliSecs() ; Сохраняем текущее время для следующего кадра ; Анализируем клавиатуру ; Клавиша CONTROL регулирует шаг изменения скорости воспроизведения If KeyDown(29) Or KeyDown(157) Then change=5 Else change=1 End If ; Клавиша SHIFT меняет размеры If KeyDown(42) Or KeyDown(54) Then If KeyDown(203) And w>change-1 Then w=w-change If KeyDown(205) And x+w+change < WIDTH Then w=w+change If KeyDown(200) And h>change-1 Then h=h-change If KeyDown(208) And y+h+change < HEIGHT Then h=h+change Else ; otherwise it's the position that we're changing If KeyDown(203) And x>change-1 Then x=x-change If KeyDown(205) And x+w+change < WIDTH Then x=x+change If KeyDown(200) And y>change-1 Then y=y-change If KeyDown(208) And y+h+change < HEIGHT Then y=y+change EndIf ; Клавиши +/- изменяют скорость воспроизведения If ( KeyDown(13) Or KeyDown(78) ) And period>change Then period=period-change If ( KeyDown(12) Or KeyDown(74) ) And period < 500 Then period=period+change ; Перерисовываем экран... Cls ; Очищаем экран DrawMovie movie,x,y,w,h ; Выводим кадр ; Выводим дополнительную информацию Text 0,0,"Клавиши со стрелками - перемещать окно." Text 0,20,"Клавиша SHIFT и стрелки - изменить размер." Text 0,40,"Клавиши + или - изменяют скорость анимации." Text 0,60,"CONTROL - скорость изменений." Text 0,80,"Нажмите ESCAPE для выхода." Text 0,100,"Текущая команда: DrawMovie(movie, " + x + ","+ y + "," + w + "," + h + ")" ; Flip the buffers Flip Until KeyHit(1) ; Escape to exit ; Удаляем анимацию из памяти перед окончанием работы CloseMovie(movie) End ; всё! |