shared fonts manager
._about
demo[fla]
.help(me)
.faq(?)
.feedback('post')
.get()
.links(_url)
 
translator: Muhammad Iqbal
http://sultanbestari.net
[about language versions]

pembahasan

top

deskripsi

top
previous next previous next

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 body.swf, maka nama file library harus body_lib.swf
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.
top

membuat beberapa library

top
previous next previous next

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:
    [purpose identifier]+_+[font style identifier]+_lib.fla
    contoh: body_i_lib.fla,
    yang mana body 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: body_i_mc. 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: body_i_lib.swf (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: body italic rus;
  • 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: body_i_txt;
      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: body_i.fla
  • 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 TestBodyItalic.fla ;
  • 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:
      // FontManager initialization code goes here ........................ // Create the "receiver" movieclip and load library into it: _root.createEmptyMovieClip("temp_mc", 0).loadMovie("body_i.swf"); // Create the text filed and pipulate it with text: _root.createTextField("test_txt", 1, 0, 0, 200, 200); _root.test_txt.text = new Array(30).join("Hello world! "); // Add the textfielda as a listener of FontManager events: font_mng.addListener(_root.test_txt); // set the event handler: _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; }; //_root.show_mng = font_mng
  • 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 /Libs/SharedFonts/. 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: /Libs/SharedFonts/body_i_lib.swf
  • 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.

top

Rekomendasi dalam penggunaan

top
previous next previous next

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.

kamus action script

beberapa Action

top

font_mng.registerTextFormat()

top
previous next previous next

penyedia

  • Flash Player 6.

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 shared movieclip is not needed anymore, it can be removed:
    if (font_mng.registerTextFormat("body_i", this.body_i_txt)) {
    	this._parent.removeMovieClip();
    }
    
    // if there's no need of removing the shared movieclip:
    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)

top

.onRegister()

top
previous next previous next

penyedia

  • Flash Player 6.

penggunaan

listenerObject.onRegister = function (success, name, instance_mng, textField ) {
    // your statements here
}

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

    // This text field will be formatted using the // any TextFormat object during its registration in the font_mng: _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); // set an event handler for the text field: _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; }; //_root.show_mng = font_mng
top
  top
previous next previous next
© 2004 Ivan Dembicki