Учебник РНР (перевод Alexandr Pyramidin) Размещено на PHPClub.Net
Назад Вперёд

XCIV. Функции Shockwave Flash

PHP предлагает возможность создания файлов Shockwave Flash с помощью модуля libswf, автор Paul Haeberli. Вы можете загрузить libswf с ftp://ftp.sgi.com/sgi/graphics/grafica/flash. Если у вас есть libswf, то всё, что вам нужно, это сконфигурировать --with-swf[=DIR], где DIR это местонахождение include и lib-директорий. Директория include должна содержать файл swf.h, а директория lib должна содержать файл libswf.a. Если вы распаковали дистрибутив libswf, эти два файла должны находиться в одной директории. Соответственно, вы должны скопировать их вручную в соответствующие места.

После того как вы успешно установили PHP с поддержкой Shockwave Flash, вы можете создавать Shockwave-файлы из PHP. Вы будете удивлены, но для этого понадобится сделать всего лишь:

Пример 1. SWF

<?php
swf_openfile ("test.swf", 256, 256, 30, 1, 1, 1);
swf_ortho2 (-100, 100, -100, 100);
swf_defineline (1, -70, 0, 70, 0, .2);
swf_definerect (4, 60, -10, 70, 0, 0);
swf_definerect (5, -60, 0, -70, 10, 0);
swf_addcolor (0, 0, 0, 0);

swf_definefont (10, "Mod");
swf_fontsize (5);
swf_fontslant (10);
swf_definetext (11, "Это Flash в PHP!", 1);

swf_pushmatrix ();
swf_translate (-50, 80, 0);
swf_placeobject (11, 60);
swf_popmatrix ();

for ($i = 0; $i < 30; $i++) {
    $p = $i/(30-1);
    swf_pushmatrix ();
    swf_scale (1-($p*.9), 1, 1);
    swf_rotate (60*$p,  'z');
    swf_translate (20+20*$p, $p/1.5, 0);
    swf_rotate (270*$p,  'z');
    swf_addcolor ($p, 0, $p/1.2, -$p);
    swf_placeobject (1, 50);
    swf_placeobject (4, 50);
    swf_placeobject (5, 50);
    swf_popmatrix ();
    swf_showframe ();
}

for ($i = 0; $i < 30; $i++) {
    swf_removeobject (50);
    if (($i%4) == 0) {
        swf_showframe ();
    }
}

swf_startdoaction ();
swf_actionstop ();
swf_enddoaction ();

swf_closefile ();
?>

Примечание: Поддержка SWF была введена в PHP 4 RC2.

libswf не поддерживает Windows. Разработка этой библиотеки остановлена, и исходный код недоступен для переноса на другие системы.

Более современная поддержка SWF дана в функциях MING.

Содержание
swf_actiongeturl - получает URL из Shockwave Flash-клипа
swf_actiongotoframe - проигрывает кадр и останавливается
swf_actiongotolabel - отображает кадр со специфицированной меткой
swf_actionnextframe - переходит на один кадр вперёд
swf_actionplay - стартует проигрывание flash-клипа, начиная с текущего кадра
swf_actionprevframe - переходит на один кадр назад
swf_actionsettarget - устанавливает контекст акций
swf_actionstop - останавливает проигрывание flash-клипа, начиная с текущего кадра
swf_actiontogglequality - переключает высокое/низкое качество
swf_actionwaitforframe - пропускает акции, если кадр не загружен
swf_addbuttonrecord - управляет размещением , видом и активной областью текущей кнопки
swf_addcolor - устанавливает специфицированное rgba-значение глобального цвета дополнения
swf_closefile - закрывает текущий Shockwave Flash-файл
swf_definebitmap - определяет растр
swf_definefont - определяет шрифт
swf_defineline - определяет линию
swf_definepoly - определяет многоугольник
swf_definerect - определяет прямоугольник
swf_definetext - определяет текстовую строку
swf_endbutton - заканчивает определение текущей кнопки
swf_enddoaction - заканчивает ткущую акцию
swf_endshape - завершает определение текущей фигуры
swf_endsymbol - заканчивает определение символа
swf_fontsize - изменяет размер шрифта
swf_fontslant - устанавливает наклон шрифта
swf_fonttracking - устанавливает трэкинг текущего шрифта
swf_getbitmapinfo - получает информацию о растре
swf_getfontinfo - высота в пикселах заглавной А и х в нижнем регистре
swf_getframe - получает номер текущего кадра
swf_labelframe - помечает текущий кадр
swf_lookat - определяет визуальную трансформацию
swf_modifyobject - модифицирует объект
swf_mulcolor - устанавливает специфицированное rgba-значение глобального цвета умножения
swf_nextid - возвращает id следующего свободного объекта
swf_oncondition - описывает переход, используемый для переключения списка акций
swf_openfile - открывает новый Shockwave Flash-файл
swf_ortho2 - определяет 2D орфографическое отображение координат пользователя в текущий порт просмотра
swf_ortho - определяет орфографическое отображение координат пользователя в текущий порт просмотра
swf_perspective - определяет трансформацию проекции перспективы
swf_placeobject - помещает объект на экран
swf_polarview - определяет позицию зрителя полярными координатами
swf_popmatrix - восстанавливает матрицу предыдущей трансформации
swf_posround - включает или отключает округление трансляции, когда объекты перемещаются или размещаются
swf_pushmatrix - проталкивает матрицу текущей трансформации обратно в стэк
swf_removeobject - удаляет объект
swf_rotate - поворачивает текущую трансформацию
swf_scale - масштабирует текущую трансформацию
swf_setfont - изменяет текущий шрифт
swf_setframe - переключает на специфицированный кадр
swf_shapearc - рисует дугу окружности
swf_shapecurveto3 - рисует кубическую кривую Безье (извините, если что не так ... Прим. перев.)
swf_shapecurveto - рисует квадратную кривую Безье между двумя точками
swf_shapefillbitmapclip - устанавливает текущий режим заполнения - clipped bitmap
swf_shapefillbitmaptile - устанавливает текущий режим заполнения - tiled bitmap
swf_shapefilloff - отключает заполнение
swf_shapefillsolid - устанавливает текущий стиль заполнения специфицированным цветом
swf_shapelinesolid - устанавливает стиль текущей линии
swf_shapelineto - рисует линию
swf_shapemoveto - перемещает текущую позицию
swf_showframe - отображает текущий кадр
swf_startbutton - стартует определение кнопки
swf_startdoaction - стартует описание списка акций текущего кадра
swf_startshape - стартует сложную фигуру
swf_startsymbol - определяет символ
swf_textwidth - получает ширину строки
swf_translate - транслирует текущие трансформации
swf_viewport - выбирает область для последующего рисования

НазадОглавление Вперёд
shmop_writeВверх swf_actiongeturl