DrawMovie movie,[x,y][,width,height]

Параметры

movie - указатель фильмаmovie handle
x (не обязательно) - координата левого верхнего угла фильма. по умолчанию 0.
y (не обязательно) - координата левого верхнего угла фильма. по умолчанию 0.
width (не обязательноl) - ширина фильма. По умолчанию-оригинальная.
height (не обязательно) - высота фильма. По умолчанию-оригинальная.

Описание

Вы должны самостоятельно предусмотреть, чтобы окно фильма полностью вмещалось на экране.

Воспроизведение фильмов основано на DirectShow, таким образом Вы должны гарантировать, что все нужные драйверы установлены. Фильмы будут воспроизводиться быстрее всего с их естественным размером.

После запуска файлов MPEG или AVI, они самостоятельно начинают воспроизведение на нормальной скорости, и команда DrawMovie просто отображает следующий кадр. Для анимационных GIF-изображений, команда DrawMovie просто выводит следующий кадр анимации каждый раз, когда её вызывают, таким образом Вы должны предусмотреть её регулярное использование для правильного воспроизведения анимации. См. пример ниже.

Смотрите также: OpenMovie, CloseMovie, MoviePlaying, 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 ; всё!

Главная страница

Нажмите сюда, чтобы увидеть последнюю версию этой страницы в Интернете