|
pembahasan
FontManager dibuat untuk pengolahan shared library fonts atau
font multifungsi dan memberikan beberapa kemudahan serta kemungkinan.
FontManager tidak meng-embed font libraries didalam movie, melainkan
melalui cara loadMovie dan digunakan
baik di movieklip utama maupun movieklip lainnya yang ditampilkan
didalam halaman.
Eksternal libraries sebagai pasangan dari file-file swf: file
library dan file penampil/kontainer. Nama file dalam Library
tergantung pada nama file kontainer dan terbentuk seperti: [file_kontainer_nama]+[_lib]+[.swf].
Sebagai contoh, jika nama file kontainer adalah ,
maka nama file library harus
File Libary harus berisikan movieklip dengan seting Linkage
seperti ini: "export for runtime sharing
" parameter harus dipilih dan "URL"
path harus disertakan juga. Movieklip harus berisikan
satu nama area teks/textfield dengan font
yang diembed.
Lihat pada membuat
shared libraries dan beberapa contoh file untuk dipelajari.
Setelah itu kemudian eksternal libraries tersebut dpat ditampilkan
dan dapat diregister untuk penggunaan didalam movieklip yang
menggunakan metode FontManager.
Penggunaan dari library yang disusun didalam langkah ini bukanlah
satu-satunya jalan yang harus anda lakukan. FontManager adalah
sebagai penghubung antara shared library dan beberapa movieklip
didalam proyek anda, termasuk pula didalamnya movieklip yang
telah ditampilkan pertamakali.
Pengaksesan font dapat di jelaskan seperti dibawah ini:
- Main movie / movie utama dapat menampilkan eksternal file
swf dan menggunakan shared font library didalamnya;
- Loaded movieclip / movieklip yang telah ditampilkan dapat
juga menggunakan shared font library dari beberapa file eksternal
movieklip yang telah ditampilkan;
- Main movie dapat pula berisikan shared font library dan
dapat menggunakan beberapa font di beberapa movieklip yang
ditampilkan dengan cara terpisah.
Dengan sendirinya sebuah obyek terbuat sewaktu pengaksesan:
fonts_mng. Ini adalah obyek global dan tidak ditampilkan/hidden
dengan menggunakan ASSetPropFlags.
jika anda menginginkan melihat apa isi dari fonts_mng
gunakan cara seperti ini:
_root.show_me = font_mng
dan melihat semua variabel dengan mode Test Movie.
Menggunakan FontManager akan memberi anda kemungkinan-kemungkinan
baru :
- menggunakan file-file library yang sama pada keseluruhan
isi site akan meminimalkan besar data yang akan di
akses oleh user/pengguna.
Sekali library ini ditampilkan file-file tersebut tidak akan
di akses lagi oleh mesin pengguna melainkan akan tersimpan
dalam cache browser.
- menampilkan beberapa font ketika diinginkan saja.
Sewaktu HTML mengolah dan memilih font apa saja yang akan
ditampilkan dengan otomatis akan ditampilkan.
- peletakan yang mudah (didkung secara international).
Akan dibutuhkan waktu yang banyak untuk mengganti properti
textfield dan menyertakan font sewaktu pengerjaan. Dengan
menggunakan font manager dengan mudah anda dapat men-set library
dengan satu langkah dan semua movieklip yang ditampilkan secara
otomatis menampilkan font yang anda inginkan.
Pemindahan file-file data dan file-file library dengan font
yang telah diatur pengaksesannya melalui direktori yang berhubungan
kemudian anda dapat dengan mudah meletakkan movie anda, hanya
dengan men-set ke arah direktori yang bersangkutan.
- design ulang untuk kemudahan.
Sekiranya cukup untuk memindahkan font yang diembed dalam
shared font library untuk melakukan perubahan-perubahan pada
semua movie yang dipakai dalam sebuah library.
- memisahkan mesin(kernel), data dan libraries.
Sekarang anda dapat dengan mudah memisahkannya. anda dapat
membuat smart klip, yang mana akan membuat sebuah scene dengan
menggunakan xml, elemen-elemen yang ditampilkannya pun hanya
yang penting saja.
It is possible to create a font library using
Font Library Creator Extension from
Carlos Rovira.
Note: FontManager dibuat berdasarkan penggunaan pada flash
Player 6 jadi semua contoh dan file-file tutorial ditumakan
pem-publish-annya pada swf versi 6.
Walau bagaimanapun FontManager juga dapat digunakan dengan menggunakan
Flash Player 7.
Menggunakan FontManager
pada movieklip versi 7
langkah 1: membuat library pada movieklip
dan menyertakan font
- Buatlah satu file FLA dan beri nama serta attributes
seperti nama font yang akan disertakan didalam file ini. Name
file harus seperti contoh dibawah ini:
contoh: ,
yang mana berarti font yang akan digunakan dalam
berbagai situasi, maksudnya adalah font syle yang berada didalam
library adalah italic.
Jika anda ingin membuat library dengan font yang sama
tetapi dengan plain font style, maka berilah nama body_p_lib.fla,
dan jika beberapa perusahaan developer anda membuat body_b_lib.fla
atau body_bi_lib.fla, maka anda harus menentukan
libraries digunakan akan menggunakan font yang sama dengan
bold dan bold-italic styles.
Jangan gunakan nama font untuk nama file pada library. Jika
font akan diganti secara bertahap, maka akan anda lihat hal-hal
yang tidak menyamankan anda. Jika arial_lib.swf
didalam library berisikan font Times New Roman, maka setiap
developer akan dikejutkan dengan hasil peletakannya pada Ethiopia
ataupun Russia.
Setelah itu hafalkan strategi penamaan library ini dan dengan
cara seperti ini akan memudahkan pengaturan didalam library
tanpa muncul suatu hambatan, dan, proses seperti ini akan
sangat efisien bagi anda.
- Buatlah sebuah movieklip dan namakan dengan sesimple mungkin,
ini dianjurkan dalam penggunaan didalam library terurama
penamaan file, seperti contoh: . Klik kanan movieklip ini, pilih
Linkage... serta properti Export for runtime
sharing, properti di Linkage lainnya tidak perlu atau
abaikan saja.
Ketik arah URL ke file swf. Nama dari file swf ini harus berhubungan
dengan nama file setelah anda publish, seperti contoh ini:
(lihat setting dibawah ini)
- Buat text field didalam movieklip ini;
- Masukkan teks didalam text field. Sebaiknya cantumkan nama
pada library, font style danversi language didalam teks ini,
contoh: ;
- Pilih font kesukaan anda pada text field;
- Sangatlah penting menyertakan font didalam klip: Properties,
Character..., Semua karakter (atau beberapa set karakter
pilihan anda saja);

- Beri nama text filed instance (penting), contoh: ;
Dimungkinkan tetapi tidak dianjurkan untuk menggantibeberapa
text field didalam movieklip ini walaupun saat ini anda
yakin jika 2 font ini akan selalu digunakan secara bersamaan.
Dianjurkan untuk mengganti satu movieklip dengan satu textfield
didalamnya yang berisikan satu font yang diembed didalam
satu file library. Jika tidak anda akan menemukan tampilan
dengan menyertakan data ekstra yang seharusnya tidak disertakan
didalamnya dan akan menemukan masalah dalam penggunaan library;
- Didalam movieklip buatlah satu layer diatas layer yang berisikan
text field dan ketik script nya diposisi tersebut:
if (font_mng.registerTextFormat("body_i", this.body_i_txt)) {
this._parent.removeMovieClip();
}
- Save file FLA dengan nama yang sama lalu compile lah.
Langkah 2: Membuat kontainer didalam movieclip
- Buatlah satu file FLA;
- Save didalam folder yang sama dengan nama yang sama juga
tetapi jangan sertakan_lib suffix, contoh:
- Untukr Flash MX: Tutup lalu "Buka sebagai Library" file
FLA dengan textfield;
- Drag movieklip itu yang dari shared library pada Stage movie
yang baru anda buat;
- Publish filenya.
File-file Library sekarang dapat anda gunakan.
Langkah 3: Menampilkan dan tes obyek shared library yang
kita buat
- Buatlah satu file FLA dan save didalam folder yang sama,
contoh, dengan nama
;
- Letakkan FontManager initialization script pada frame dimanapun
anda suka, dianjurkan pada permulaan movie tersebut;
Sekarang anda dapat menampilkan font dan mengetiknya pada
area teks.
Gunakan script dibawah ini sebagai latihan, letakkanlah pada
frame pertama _root setelah kode FontManager initialization:
_root.createEmptyMovieClip("temp_mc", 0).loadMovie("body_i.swf");
_root.createTextField("test_txt", 1, 0, 0, 200, 200);
_root.test_txt.text = new Array(30).join("Hello world! ");
font_mng.addListener(_root.test_txt);
_root.test_txt.onRegister = function(success, name, mng) {
if (!success) {
return trace("registerError : "+name);
}
trace("name:\n\t"+name+"\nfont:\n\t"+mng[name].font);
this.setTextFormat(mng[name]);
this.wordWrap = this.embedFonts=true;
};
- sekarang tes. teks pada textfield akan terlihat.
Langkah 4: Tes dan menggunakannya didalam site
Rencanakan posisi library anda didalam site dengan benar. Ketika
digunakan didalam site cara yang paling bagus adalah menggunakan
secara absolute atau site-root-relative paths.
Note: jika anda ingin mengetes versi
demo dari FontManager, dengan satu cara menggunakan WebSpeed Simulator.
Buka dialog Setup lalu arahkan parameter Local Website menuju
ke folder file proyek anda berada. Lalu tekan tombol "Browse
Web" dan ketik http://localhost/ di
browser anda.
Jangan lupa buat folder dimana ile library anda berada. Dicontoh
ini telah diset pada .
Pengarahan folder yang dituju adalah terserah anda sendiri yang
menentukan.
- Di root folder dari site buatlah Libs folder, dengan folder
SharedFonts didalamnya
- Buka file body_i.fla
- Buka library dan tentukan parameter URL di properti Linkage
dialog box seperti:
- Compile file tersebut; Anda akan melihat pesan error:
Error opening URL
"file:///Libs/SharedFonts/body_i_lib.swf"
abaikan pesan ini;
- Kopi body_i_lib.swf dan file body_i.swf ke dalam folder SharedFonts (tidak
boleh menambahkan apapun didalam file body_i_lib, harus nampak
seperti pertama kali kita buat sebelumnya);
- Buka file TestBodyItalic.fla yang
telah kita buat lalu gantikan
.loadMovie("body_i.swf")
menjadi
.loadMovie("/Libs/SharedFonts/body_i.swf")
- Publish filenya (Ctrl+F12) untuk membuat file HTML.
- Kopi file tersebut dimanapun didlam struktur site tersebut.
- Buka halaman. Beberapa saat kemudian, setelah menampilkan
font anda akan melihat isi dari text field telah terformat.
Langkah 5: Menggunakannya dengan Flash Player 7
Menggunakan FontManager dengan Flash Plyer 7:
- buatlah file swf versi 6 yang berisikan FontManager initialization
script;
- letakkan file tersebut didalam site dan tampilkan jika
di inginkan; atau
- letakkan FontManager initialization script didalam shared
movieklip dan masukkan movieklip didalam clips
hanya ditemukan satu ketidak nyamanan ketika menggunakan Flash
Player 7: saat menunggu sewaktu file akan ditampilkan, tetapi
mengingat besar file tersebut (kira-kira 1 kbyte) ketidaknyamanan
ini sangatlah kecil. Selanjutnya, latihan penggunaan dengan
Flash Player 6 sangat dianjurkan juga.
Tidak ada perbedaan yang berarti akan ditemukan nantinya.
Saya telah melakukan banyak eksperimen sewaktu menciptakan
FontManager. Pertama versi FontManager adalah sebuah komponen.
Didalam eksperiment metode FontManager terhitung mundur dari
delapan ke satu, penghitungan event berkurang dari empat menjadi
satu, dan terdapat dua properti, yang mana saya hilangkan juga.
Lebih dari 50 file telah terbuat untuk sebuah tes. Maka dengan
ini berdasarkan pengalaman Saya disini memberi anda satu rekomendasi.
Di masa mendatang, anda akan menemukan sendiri cara-cara terbaik
anda sendiri, tetapi saya menganjurkan rekomendasi saya ini
di perhatikan dengan seksama:
Dengan tidak menyertakan FontManager initialization script didalamnya.
Cara yang paling jitu adalah pembuatan sebuah file swf yang
berisikan script ini dan gunakan sebagai module awal anda. Akan
lebih bagus lagi adalah membuat shared movieklip yang berisikan
FontManager initialization script dan memasukkan shared movieklip
kedalam proyek anda sewaktu anda membutuhkannya.
Anda dapat merubah FontManager initialization script ketika
anda memutuskan untuk pindah ke domain baru anda tanpa pusing
kepala.
Jangan gunakan nama-nama file swf library didalam movie anda.
Akan lebih ringan lagi jika anda membuat sebuah file xml dengan
deskripsi beberapa library anda. Sebagai contoh:
<fontlibrary version="1.0" author="Ivan Dembicki" >
<style name="body" font="Artemius TT" lang="rus" >
<plain id="body_p" url="/fontLibrary/rus/body_p.swf" />
<bold id="body_b" url="/fontLibrary/rus/body_b.swf" />
<italic id="body_i" url="/fontLibrary/rus/body_i.swf" />
<italicbold id="body_bi" url="/fontLibrary/rus/body_bi.swf" />
</style>
<style name="header" font="ArtemiusBlack TT" lang="rus" >
<plain id="header_p" url="/fontLibrary/rus/header_p.swf" />
<bold id="header_b" url="/fontLibrary/rus/header_b.swf" />
<italic id="header_i" url="/fontLibrary/rus/header_i.swf" />
<italicbold id="header_bi" url="/fontLibrary/rus/header_bi.swf" />
</style>
</fontlibrary>
Perhatikan baik-baik pada ID nodes dan nama-nama dalam style tersebut.
Menggunakan ID akan memudahkan anda menemukan URL dari file kontainer
didalam library. Dan di dalam maslah peletakannya, seprti contoh
folder Jepang berikut "/fontLibrary/jp/",
mempopulasikan folder tersebut dengan file library dan mengganti
pathnya didalam file xml.
Transisi dari local ke versi internet akan menjadi mudah juga.
Satu lagi keunggulannya adalah sebuah kemungkinan untuk visual
checking yang berhubungan antara beberapa font and beberapa style.
Andapun dapat membuat struktur XML sesuai keinginan anda tentunya.
Ini hanyalah sebuah contoh untuk anda.
Gunakan beberapa library yang me-register dengan otomatis,
seperti contoh tadi. Setelah registering anda dapat menghapus
library anda tanpa basa-basi.
Gunakan path local pada beberapa library untuk tes secara lokal,
dan gunakan absolute paths untuk internet.
Jangan anda membuat FontManager instances, walaupun dapat dilakukan
dengan kode berikut ini:
my_font_mng = new font_mng.constructor()
saya pikir ini perlu juga dilakukan untuk menemukan kemungkinan
lainnya, tetapi lakukan ini di waktu sisa anda saja.
beberapa Action
penyedia
penggunaan
font_mng.registerTextFormat( instanceName,
textField )
beberapa Parameter
instanceName - string, men-set
nama dari obyek TextFormat
textField - peng-arah kepada textfield didalam
shared movieklip, yang mana diperlukan untukmendapatkan obyek
dari textFormat.
Returns
Boolean. returns false, jika textfield
tidak berisikan font yang diembed atau tidak ada instanceName pada obyek TextFormatt. Maka
returns true.
Deskripsi
Method. Membuat obyek TextFormat didalam FontManager. Shared
movieklip yang berisikan sampel textfield dapat dihilangkan
ketika selesai.
Obyek TextFormat dalam FontManager dapat dibuat berdasarkan
sampel dari beberapa text field yang berada didalam shared movieklip
dan telah diembed font.
Mem-cek text field yang ditemukan didalam shared movieklip dianjurkan
bagi developer.
Sebelum keluar dari prosedur initialization dari FontManager
menjalankan sebuah event onRegister
dengan sebuah parameter initialization.
contoh
- satu contoh library yang ditampilkan, ketika dilakukan pemanggilan
dari shared movieklip (self-registering):
if (font_mng.registerTextFormat("body_i", this.body_i_txt)) {
this._parent.removeMovieClip();
}
font_mng.registerTextFormat("body_i", this.body_i_txt)
- satu contoh library yang diletakkan didalam sebuah Scene:
font_mng.registerTextFormat("body_i", this.any_mc.shared_mc.body_i_txt)
penyedia
penggunaan
listenerObject.onRegister = function (success, name,
instance_mng, textField ) {
}
beberapa Parameter
success - Boolean, returns false, jika tidak ditemui sebuah nama obyek TextFormat
maka akan dilewati ketika pemanggilan dilakukan registerTextFormat
atau ketika tidak ditemui font yang diembed didalam sampel text
field. Maka returns true.
name - string, nama yang terbuat
dalam FontManager obyek dari TextFormat.
instance_mng - peng-arah untukFontManager
instance yang dipanggil ketikaresistration;
textField - peng-arah untuk sampel format
sebuah textfield.
Returns
Kosong
deskripsi
Event. Diabaikan ketika keluar dari langkah prosedur dari registration
obyek TextFormat dalam FontManager.
Telah dipahami bahwa FontManager sebagai penyerta, dia juga
mempunyai banyak method dan juga beberapa properti sebagai penyerta.
contoh
_root.createTextField("test_txt", 1, 0, 0, 200, 200);
_root.test_txt.text = new Array(30).join("Hello world! ");
font_mng.addListener(_root.test_txt);
_root.test_txt.onRegister = function(success, name, mng) {
if (!success) {
return trace("registerError : "+name);
}
trace("name:\n\t"+name+"\nfont:\n\t"+mng[name].font);
this.setTextFormat(mng[name], this);
this.wordWrap = this.embedFonts=true;
};
|