sIFR 3 Alpha ujrzał światło dzienne
02 czerwca 2006
A wraz z nim jeszcze prostszy i bardziej intuicyjny sposób na umieszczanie napisów na stronach WWW za pomocą dowolnie wybranej czcionki. Wszystko dzięki JavaScript i Flashowi. Jak to działa? Otóż przez JavaScript sprawdzana jest obecność pluginu - jeśli jest zainstalowany (i jest w odpowiedniej wersji) to żądane elementy (na przykład nagłówki) są podmieniane przez obiekt Flasha. Wyświetla on oryginalny tekst i skaluje go korzystając z odpowiednich reguł CSS. Tekst można zaznaczać (kopiować), zamieniać na link. Oczywiście dzięki podmianie przez JavaScript takie nagłówki są dostępne dla wyszukiwarek i czytników ekranu.
W poprzedniej wersji (sIFR 2) należało wyczyniać cuda na kiju, żeby wielkość czcionki nie zwiększała się wraz z długością napisu, co było mankamentem tamtego sposobu skalowania. Teraz już jest prościej, a szereg usprawnień jest dość imponujący. Korzystając z okazji opiszę jak używać Scalable Inman Flash Replacement.
- W paczce zamieszczony jest plik sifr.fla, otwieramy go korzystając z Flash 8 (trial jest dostępny na stronie Adobe).
- Klikamy parę razy w dokumencie aż pokaże się tekst.
- Zaznaczamy go i wybieramy odpowiedną czcionkę w panelu na dole (jak go nie widać to Ctrl + F3).
- Jeśli nie chcemy możliwości wyświetlania tekstu pogrubionego albo kursywy kasujemy odpowiednią część tego przykładowego tekstu. Można skasować wszystko, aby rozmiar pliku pozostał jak najmniejszy.
- Klikamy przycisk Embed i wybieramy wszystko od Uppercase [A..Z] do Punctuation [!@#$...] oraz Latin I i Latin Extended A - aby polskie krzaczki się pokazały.
- Wybieramy Export → Movie (Ctrl + Shift + Alt + S) z menu File i zapisujemy - raz jako Flash 8 (dostajemy autokerning i lepszy antyaliasing) drugi raz jako Flash 7.
- Load order ma być ustawiony na Bottom up a wersja ActionScript na 2.0. Wypada jeszcze skompresować (Compress movie) i zaznaczyć Protect from import.
Potem na stronie którą chcemy upiększyć - niech będą to nagłówki h2 - wstawiamy relację do plik JS z paczki.
<script type="text/javascript" src="sifr.js"></script>
Następnie w pliku skryptów albo od razu na stronie (w <script/>) I wywołanie zamiany. Po kolei:
sIFR.prefetch({src: 'nazwafonta-7.swf',highsrc: 'nazwafonta-8.swf'});
Prefetching plików dla Explorera i Safari (szybsze ładowanie). Tutaj ustawiamy te dwie wersje - jedną zwykłą i jedną lepszą dla Flasha 8. Gdyby Flash 7 nas nie obchodził należy dodać tą linijkę przed podanym wyżej kodem:
sIFR.useAdvancedModeOnly();
Następnie powinniśmy włączyć kompatybliność z starszymi wersjami Mozilli, Opery i Safari - nowy algorytm określania rozmiarów czcionek tego wymaga. Kolejnym krokiem jest aktywacja skryptu.
sIFR.compatMode = true;sIFR.activate();
Gdybyśmy musieli wyłączyć sIFR na jakiś czas wystarczy wykomentować tą drugą linijkę. Wracając jednak - pozostaje już tylko zacząć zamieniać tekst. Dla nas są to nagłówki h2:
sIFR.replace({selector: 'h2',src: 'nazwafonta-7.swf',highsrc: 'nazwafonta-8.swf',css: {'.sIFR-root': { 'font-weight': 'bold', 'leading': -5, 'background-color': '#FFFFFF' }}});
Początek jest raczej jasny. Jako selektorów można używać #identyfikatora, .klasy oraz > potomka. Można także wypisać parę reguł oddzielając je przecinkami. Dalej mamy wskazanie na pliki Flasha (jak wyżej) oraz dodatkowy opis wyglądu. Tutaj można ustawić pogrubienie albo kursywę oraz odstępy między wierszami przez leading. Należy także ustawić kolor tła, jeśli nie używamy domyślnego - białego.
Kawałek kodu z sIFR.replace() możemy wywoływać ile razy chcemy dla ilu chcemy elementów. Oczywiście sIFR nie służy do zamiany całych akapitów - co najwyżej nagłówki albo specjalnie wyeksponowane kawałki tekstu.
Następnie należy określić już w CSS wielkość renderowanych napisów. Bardzo ważne jest też aby nadać wysokość linii wartość 1em (równą wielkości tekstu). Dzięki temu zadziała bezproblemowo ten nowy sposób renderowania.
h2 {font-family: Candara, sans-serif;font-size: 1.63em; /* 26px */font-weight: bold;}.sIFR-hasFlash h2 {font-size: 26px;line-height: 1em;}
Należy zaznaczyć, że aktywacja sIFR-a oraz funkcje podmieniające zwykły tekst na Flasha mogą być umieszczone w <body/> i uruchomić się od razu albo w <head/> i uruchomić się dopiero po załadowaniu całego dokumentu.
Demo jak to wszystko wygląda. W prezentacji użyłem dość ciężkich plików .swf, ale na pewno da się je bardziej skompresować (choćby przez zmniejszenie jakości JPG w eksportowaniu albo zmniejszeniu ilości dołączanych znaków). Więcej na temat konfiguracji sIFR można poczytać w dokumentacji wersji 2.x oraz w How-To wersji 3.0.
W sIFR 3.0 znalazłem jeden błąd (?) - mianowicie gdy klikniemy na napis i zaczniemy scrollować myszką mając kursor nad nim tekst zniknie (pojawi się, jeśli przescrollujemy w drugą stronę) - tak jakby przewijano zawartość tego bloku. A tak poza tym to wszystko działa i bardzo ładnie wygląda. Polecam, to tak naprawdę jedyny tak dobry sposób na pokazanie ładnych napisów swoją czcionką.


