Понедельник, 04.11.2024, 18:42
Главная | Регистрация | Вход Приветствую Вас Гость | RSS


Меню сайта


Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0


Тестування онлайн
тестування онлайн 


Социальные закладк

Приложение:polet0.rar
images.rar

polet1.rar


Занятие 38.  Анимация средствами Visual Basic. Элемент управления Timer

Метод  ⇒  анимация, основанная на изменении свойств объекта. 

В Интернете  можно встретить рисунки с расширением .gif, которые выглядят как движущиеся рисунки – анимация. Эти файлы объединяют несколько рисунков, которые выводятся на экран по очереди. Специальные программы «gif - аниматоры» могут разделить файл на отдельные кадры и записать каждый кадр в отдельный файл

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

 Для начала рассмотрим все свойства таймера:

  1. Элемент управления таймер (timer) - это объект, способный инициировать события через регулярные промежутки времени.
  2.  Таймер программируют присвоением определенных значений (в миллисекундах) свойству interval тем самым задают периодичность возникновения событий, связанных с таймером.

Свойства и события таймера

Стандартные свойства таймеров Name и Enabled.
Самое важное свойство объектов этого типа Interval: 

  •               Интервал (в мс) между двумя событиями может принимать любые  значения в диапазоне от 0 до 65535.
  •               Интервал, равный нулю, отключает таймер.

Если вам нужно, чтобы события от таймера возникали n раз в секунду, то для подсчета  значений свойства Interval можно пользоваться формулой 1000/n.
            Например, чтобы система генерировала события таймера 2 раза в секунду,  в свойство Interval надо записать число 500 (т.е. 1000/2).

Когда доступ к таймеру разрешен, событие Timer генерируется через равные промежутки времени.

  • Name - имя таймера.
  • Enabled - одно из самых важных свойств, оно есть практически у всех объектов. Это свойство блокирует объект, если его значение равно False (ложь), и разблокирует, если значение равно True. При помощи этого свойства мы будем включать и выключать таймер
  • Interval ( интервал между событиями).  Это свойство устанавливает интервал обновления таймера в миллисекундах, например, если поставить 1000, то таймер будет обновляться каждую секунду.

Разработка проект «Полет»

 Вариант 1.

  1. В проекте Polet для размещения кадров анимированного изображения создадим массив изображений  используя элемент управления  ImageList1.
    Для создания массива необходимо:

Записать изображения в ImageList1:

 
                                            
   
Каждому  элементу массива присваивается соответствующий индекс. 

Элементы в массиве пронумерованы по порядку. Порядковый номер элемента называется индексом и записывается в скобках сразу после имени массива (в нашем случае  восемь анимационных кадров с индексами от 0 до 7).

Использование массивов объектов позволяет значительно сократить программный код.

2.Поместим на форму элемент Timer. Когда он находится на (загруженной) форме, то его совершенно не видно — он работает незаметно​​. Измените свойство Interval (=500).

3.Поместим на форму элемент управления PictureBox1.   Каждые полсекунды значение свойства Image будет изменяться  (PictureBox1.Image = ImageList1.Images(a), где а - переменная, содержащая текущее значение индекса)

Интерфейс проекта

   

Блок - схема проекта

Программный код проекта

    Dim a As Short

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        a = 0
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        PictureBox1.Image = ImageList1.Images(a)
        a = a + 1
        If a > 6 Then a = 0
    End Sub

 

 Вариант 2.

Дополним проект элементами PictureBox2, ImageList2, Timer2. 

В программном коде проекта зададим смещение элементов PictureBox1, PictureBox2 вдоль формы.

Интерфейс проекта

  

Dim a As Short

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        a = 0
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        PictureBox2.Image = ImageList1.Images(a)
        PictureBox2.Left = PictureBox2.Left + 20
        a = a + 1
        If a > 6 Then a = 0
        If PictureBox2.Left >= 400 Then PictureBox2.Left = 30
    End Sub


    Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
        PictureBox1.Image = ImageList2.Images(a)
        PictureBox1.Left = PictureBox1.Left - 20
        a = a + 1
        If a > 6 Then a = 0
        If PictureBox1.Left <= 30 Then PictureBox1.Left = 400
    End Sub

продолжение

Форма входа
Поиск
Календарь
«  Ноябрь 2024  »
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
252627282930
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz

  • Рейтинг@Mail.ru
    Copyright MyCorp © 2024
    Конструктор сайтов - uCoz