Динамические фильтры
Динамическое преобразование картинки с помощью фильтра:
Рис. 671. Динамическое преобразование картинки с помощью фильтра "Вертикальные жалюзи"
Заметим, что Image1 – это имя (идентификатор) элемента-контейнера, заданного тэгом <DIV>; контейнер содержит единственный элемент (картинку), но мы использовали его только затем, чтобы применить к нему метод apply(), который не поддерживается элементом, созданным тэгом <IMG>; filters – коллекция всех фильтров, фильтр (единственный) указан номером в коллекции: Imagel.filters(0).
Если в приведенной выше программе изменить тип преобразования, например, на 3 (расширяющийся круг) путем замены в теле функции соответствующей записи Image1.filters(0).Transition=3, то получится такой эффект, как показано на следующем рисунке (картинка постепенно появляется в расширяющемся круге):
Рис. 672. Динамическое преобразование картинки с помощью фильтра "Расширяющийся круг"
При установке фильтра типа 12 возникает эффект постепенного повышения разрешения изображения путем случайного заполнения пикселами места, отведенного под картинку. Точки картинки постепенно выводятся на экран в случайном порядке.
Тип преобразования 23 – случайный выбор и применение одного из имеющихся типов (от 0 до 22). Вы заранее не можете угадать, какой именно фильтр сработает, когда пользователь загрузит вашу страницу.
Следующая программа аналогична рассмотренной выше, но в ней применяется другой фильтр (blendtrans), который создает эффект постепенного повышения яркости и насыщенности изображения. Этот фильтр имеет только один параметр – продолжительность преобразования (duration). Обратите внимание, что новая программа получилась из предыдущей путем замены двух строк.
<
HTML
>
<
HEAD
>
<
TITLE
>
Динамический фильтр
<
/
TITLE
>
<
SCRIPT
>
function
dyn_filter() {
Imagel.filters(
0
).Apply()
II.style.visibility
=
"visible"
Imagel.filters(
0
).play(
2
)
}
<
/
SCRIPT
>
<
/
HEAD
>
<
BODY
ONLOAD
=
"dyn_filter()"
>
<
DIV
ID
=
Imagel
STYLE
=
"position:absolute; height:200; width:300; left:10; top:10; filter:blendtrans"
>
<
IMG
ID
=
I1
STYLE
=
"position:absolute; height:200; width:300; visibility:hidden"
SRC
=
"world.gif"
>
<
H3
STYLE
=
"position:absolute; top:210"
>
Динамическое преобразование картинки с помощью фильтра
<
/
H3
>
<
/
BODY
>
<
/
HTML
>
Попробуйте применить фильтр reveALTrans, управляющий появлением картинки, при различных значениях (0-23) параметра transition, который задает тип преобразования. Для этого можно использовать в качестве основы один из рассмотренных выше текстов HTML-программы.
При создании динамических сцен может потребоваться переориентировать картинку при изменении направления ее движения. Например, при изменении направления движения самолета на противоположное следует развернуть его изображение на 180°. Конечно, можно иметь две картинки с самолетом, на одной из которых самолет летит направо, а на другой – налево. Тогда вам потребуется только динамически изменять аргумент атрибута SRC в тэге <IMG>. Другой способ состоит в том, чтобы две картинки поместить на одном и том же месте, но динамически управлять их видимостью так, что в любой момент видна лишь одна картинка. Наконец, можно просто применить соответствующий статический фильтр к одной картинке. Попробуйте самостоятельно разработать эти сценарии.