Новые книги

Курс посвящен изучению языка программирования JavaScript. JavaScript является языком сценариев (скриптов), который применяют в основном для создания на Web-страницах интерактивных элементов. Его можно использовать для построения меню, проверки правильности заполнения форм, смены изображений или для чего-то еще, что можно сделать на Web-странице.
Эта книга о современных интерактивных коммуникациях с потребителями обладает отличным балансом теории и практики (что неудивительно: ее автор работает в успешном агентстве интерактивного маркетинга «Редкая марка» и руководит игровым направлением «Яндекса»). Здесь вы найдете универсальные советы по игровому решению разнообразных маркетинговых задач и более 200 ярких примеров, дающих простор для воображения и новых идей. Известно, что только игра способна полностью завладеть вниманием человека. Играйте с клиентами и потребителями, если хотите быть первым!

Вам необходимо иметь под рукой эту книгу, если ваша деятельность связана с маркетингом и развитием бизнеса: если вы генеральный директор, директор по развитию бизнеса, директор по маркетингу, руководитель подразделения маркетинга и рекламы, продаж, бренд-менеджер, представитель рекламного, PRBTL-агентства или консультационной компании.

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

Применение многопоточности для анимации

Применение многопоточности для анимации

Оглавление

Многопоточность
Процессы, потоки и приоритеты
Многопоточность в Java
Многопоточность и анимация
Синхронизация потоков
Потоки-демоны
Аплет Rectangles
Исходные тексты
Описание текстов

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

Работа аплетов, так же как и обычных приложений операционной системы Windows, основана на обработке событий. Для классического приложения Windows событие - это приход сообщения в функцию окна. Основной класс аплета обрабатывает события, переопределяя те или иные методы базового класса Applet.

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

Напомним, что перерисовка окна аплета выполняется методом paint, который вызывается виртуальной машиной Java асинхронно по отношению к выполнению другого кода аплета.

Можно ли воспользоваться методом paint для периодической перерисовки окна аплета, организовав в нем, например, бесконечный цикл с задержкой?

К сожалению, так поступать ни в коем случае нельзя. Метод paint после перерисовки окна аплета должен сразу возвратить управление, иначе работа аплета будет заблокирована.

Единственный выход из создавшейся ситуации - создание потока (или нескльких потоков), которые будут выполнять рисование в окне аплета асинхронно по отношению к работе кода аплета. Например, вы можете создать поток, который периодически обновляет окно аплета, вызывая для этого метод repaint, или рисовать из потока непосредственно в окне аплета, получив предварительно для этого окна контекст отображения.