Na skróty

Jeśli zatem potrzebny jest nam wykres, rysunek lub animacja, sporządzimy je, korzystając z PHP. Musimy tylko sięgnąć po darmową bibliotekę MING. Jest ona udostępniana na licencji LGPL, a służy do tworzenia plików w formacie SWF, czyli dokumentów Flasha. Biblioteka powstała z myślą o językach C++, PHP, Perl i Python. W PHP rozszerzenie to jest dostępne od wersji 4.0.5, ale wymaga instalacji. Szczegółowe informacje dotyczące biblioteki znajdziemy na stronie internetowej ming.sourceforge.net.

Najpierw HTML

Zanim przystąpimy do utworzenia właściwego pliku Flash (flashp1.php), powinniśmy przygotować plik, który będzie naszą animację pobierał i osadzał w odpowiednim miejscu strony internetowej. Rozpoczynamy więc od skryptu PHP, stanowiącego szablon dokumentu HTML. Nazwijmy go

flash1.php

:

<html><body><object src=”flashp1.
   php” width=600 height=100>
     <embed src=”flashp1.php”
          width=600 height=100>
     </embed>
</object></body></html>

Do osadzania obiektów w plikach HTML stosujemy znacznik <embed> lub <object>. Którego używać? Zależy to od przeglądarki. Pierwszy znacznik jest odczytywany przez Firefoksa, który z kolei nie poradzi sobie z drugim. W wypadku Internet Explorera jest zaś odwrotnie. Aby więc zapewnić odczyt znacznika osadzającego obiekt przez każdą przeglądarkę, należy znaczniki zagnieżdżać. Zauważmy, że w każdym elemencie zastosowaliśmy atrybuty width i

height

, aby określić szerokość i wysokość miejsca przeznaczonego dla danego obiektu. Podaliśmy też atrybut src, któremu przypisaliśmy nazwę pliku PHP oznaczającego obiekt Flasha (

flashp1.php

).

Po pierwsze: podkład

Sporządźmy nasz pierwszy obiekt Flasha. Zacznijmy od czegoś prostego:

<?
$m = new SWFMovie( ;
$m->setDimension(500, 250);
$m->setBackground(0, 255, 255);
header(‘Content-type: application/
    x-shockwave-flash’);
$m->output( );
?>

Podstawowym elementem, jaki musimy utworzyć, jest obiekt klasy SWFMovie. Stanowi on płótno, na którym narysujemy następne składniki animacji. W naszym skrypcie na obiekt ten będzie wskazywała zmienna $m .

Korzystając z metod klasy SWFMovie, nadamy naszemu obiektowi określone właściwości. Rozpoczniemy od ustalenia rozmiaru płótna, do czego posłuży nam metoda setDimension(). Pobiera ona w postaci dwóch liczb całkowitych szerokość i wysokość płótna w pikselach.

Teraz za pomocą metody setBackground() ustalamy kolor tła płótna. Metoda ta pobiera trzy liczby całkowite, z których każda określa jedną z wartości RGB koloru. Następnie, dzięki funkcji header(), powiadamiamy przeglądarkę o rodzaju aplikacji, jaka będzie do niej wysłana. A na koniec już przekazujemy zawartość naszego obiektu płótna na wyjście, czyli do przeglądarki – tu posłużymy się metodą output() .

Coś więcej

Przyglądając się pierwszemu obiektowi Flasha, musimy przyznać, że nie jest on zbyt interesujący. W kolejnym skrypcie (

flashp2.php

) umieścimy na płótnie napis:

<?

$f=new SWFFont(“Bitstream Vera Sans Mono.fdb”);
    $t = new SWFText( );
    $t->setFont($f);
    $t->setColor(255,255,255);
    $t->setHeight(25);
    $t->moveTo(10,35);
    $t->addString(“Flashowy napis wykonany w PHP”);
$m->add($t);

?>

Plik jest podobny do poprzedniego, z tą różnicą, że zawiera dodatkowo implementację obiektu typu SWFText. Odpowiada on za utworzenie łańcucha znakowego. Wywołujemy dla niego metodę setFont(), pobierającą jako parametr obiekt SWFFont. Obiekt ten opisuje czcionkę i pobiera jej nazwę w postaci łańcucha znakowego.

Zauważmy, że plik z czionką ma rozszerzenie FDB. Skąd wziąć plik FDB (Font Definition Block) definujący font? Otóż wystarczą czcionka TTF oraz program ttf_to_fdb.exe. Aplikacja jest dostępna pod adresem www.amarasoftware.com/downloaddemo/makefdb.zip. Umieszczamy program wraz z czcionką TTF np. w katalogu C:\ i wydajemy komendę c:\>ttf_to_fdb.exe nazwa_czcionki. Po zatwierdzeniu komendy powstanie plik opisujący font. Teraz wystarczy skopiować go do katalogu, w którym znajduje się plik flashp2.php .

Po wykonaniu opisanych zabiegów możemy już przekazać nazwę czcionki obiektowi klasy SWFFont, a do obiektu SWFText przesłać zmienną wskazującą na obiekt czcionki.

Aby nadać kolor czcionce, wywołujemy metodę setColor(), która pobiera trzy liczby całkowite, definiujące wartości RGB. Możemy także określić wysokość naszej czcionki poprzez wywołanie metody setHeight(), której argumentem jest liczba całkowita.       Dla naszego obiektu zastosowaliśmy też metodę

moveTo()

– pobiera ona dwie liczby całkowite. Dzięki nim wskażemy miejsce, od którego zostanie narysowany łańcuch znakowy. Pierwsza liczba oznacza współrzędną poziomą, a druga pionową. Wartości są liczone od górnego lewego rogu płótna. Litera zawsze jest rysowana od lewej jej krawędzi i dolnej części tzw. linii bazowej.

Tutaj uwaga: przypisanie współrzędnej y wartości zero skutkuje rysowaniem łańcucha znakowego od linii bazowej czcionki, czyli dolnej części tekstu. Napis może się znaleźć poza płótnem, a zatem parametr y powinien mieć większą wartość. Samą treść napisu podajemy dzięki metodzie addString() .

Pozostało nam jeszcze dodanie przygotowanego obiektu tekstowego do obiektu płótna. Dokonujemy tego za pomocą metody add() klasy SWFMovie. Zaznaczmy, że metoda add() zwraca obiekt typu SWFDispayItem, dla którego możemy wywołać metody związane z przesunięciem obiektu, jego obrotem czy skalowaniem. Do tego zagadnienia wrócimy w dalszej części artykułu.

Więcej:bezcatnews