Langsung ke konten utama

Construct 2 Indonesia Manual: Bab Plugin Reference - 3. AJAX

Plugin: AJAX memungkinkan untuk melakukan Request terhadap halaman web selama menjalankan game. Nama AJAX berasal dari “Asynchronous JavaScript and XML”, sebuah teknik yang familiar bagi kebanyakan pengembang web. Object: AJAX dirancang untuk digunakan oleh pengembang web yang sudah terbiasa dengan teknik ini – referensi ini tidak akan menjelaskan prinsip-prinsip AJAX itu sendiri, hanya bagaimana menggunakannya di Construct 2 dengan Object: AJAX. Umumnya menggunakan Object: AJAX juga memerlukan Server-side Script khusus yang berada di luar cakupan manual ini.


Cara membuat Request

Penggunaan dasar Object: AJAX terdiri dari:

  1. Gunakan Action: Request untuk memuat URL.
  2. Sesaat kemudian setelah Request selesai, Condition: On complete terpicu (Triggered).
  3. Expression: LastData dapat digunakan untuk mengakses isi Response.

System Expression: Tokenat mungkin berguna untuk membagi Response sederhana. Sebagai alternatif, Anda bisa memuat LastData ke Plugin: XML untuk membacanya sebagai dokumen XML.


Tag

Tag yang berbeda dapat diberikan untuk setiap Request. Ini adalah String/teks sederhana yang Anda tetapkan untuk membedakan beberapa Request yang berbeda. Sebagai contoh: saat Startup Anda dapat meminta antara kedua Request: foo.php dengan Tag: “foo” dan bar.php dengan Tag: “bar”. Saat Request pertama selesai, Condition: On “foo” completed terpicu (Triggered); saat Request kedua selesai, Condition: On “bar” completed terpicu (Triggered). Request dapat selesai pada urutan yang berbeda daripada urutan Request pada saat dibuat, jadi tanpa Tag, tidak mungkin mengetahui Request mana yang telah terselesaikan.


Membuat Cross-domain AJAX Request atau saat pratinjau (Preview)

Secara Default, browser memblokir AJAX requests across domain. Ini berarti, misalnya: game di scirra.com dapat melakukan Request halaman lain scirra.com, namun tidak dapat melakukan Request halaman di facebook.com. Ini adalah fitur keamanan penting dari browser web (bukan aturan spesifik yang dibuat oleh Construct 2 atau Object: AJAX-nya).

Juga, saat melihat pratinjau (Preivew) di Construct 2, game berjalan di localhost. Ini dianggap sebagai domain yang berbeda dengan keseluruhan internet, sehingga permintaan AJAX pada halaman web akan gagal selama pratinjau (Preview), kecuali server secara eksplisit mengizinkan (Allow) cross-domain request.

Jika Anda ingin AJAX Request ke server Anda untuk dapat diakses dari domain manapun, atau dalam pratinjau (Preview), Anda dapat mengatur konfigurasinya dengan mengirim header HTTP berikut ini:

Access-Control-Allow-Origin: *

Ini akan memungkinkan untuk melakukan AJAX Request dari domain manapun, namun Anda tetap harus menyadari kemungkinan implikasi terhadap keamanan dari hal ini. Untuk informasi lebih lanjut tentang cross-domain request, lihat HTTP access control pada MDN (https://developer.mozilla.org/En/HTTP_access_control).


In Node-webkit

Saat mengekspor aplikasi desktop dengan Node-webkit, Object: AJAX juga dapat memuat file dari folder aplikasi. Cukup gunakan Action: Request URL dan masukkan nama file dalam direktori yang sama seperti aplikasi, misalnya: “example.txt”. Catatan: Jika file Project ada dengan nama yang sama, ini akan selalu memuat file Project.


AJAX Conditions

  • On completed
    Terpicu saat Request dengan Tag yang sama telah selesai dengan sukses. Expression: LastData berisi Response dari AJAX tersebut.

  • On error
    Terpicu saat Request dengan Tag yang sama telah gagal. Ini bisa jadi karena beberapa alasan, seperti: Server sedang down atau juga ‘Request time out’ (Expression: LastData tidak ada nilai karena tidak ada Response).

  • On progress
    Untuk Request yang sudah berjalan lama (misalnya: mengunduh file besar), Condition: On progress terpicu secara berkala dan memperbarui Expression: Progress dengan status Request tersebut. Ini berguna untuk membuat Progress bar untuk AJAX Request tersebut.



AJAX Actions

  • Post to URL
    Kirim Request: POST ke URL dan ambil Response. Tag diberikan untuk menyesuaikannya dengan Trigger Condition: On completed, On progress dan On error. Construct 2 tidak secara otomatis melakukan URL Encode dari Post data – gunakan System Expression: URLEncode untuk memastikan data dalam format yang benar untuk melakukan Post. Catatan: Post data merupakan format yang sama seperti Query String, misalnya: “foo=1&bar=2”.

  • Request URL
    Kirim Request: GET untuk mengambil konten dari URL. Tag diberikan untuk menyesuaikannya dengan Trigger Condition: On completed, On progress dan On error.

  • Request Project file
    Minta konten dari Project file. Tag diberikan untuk menyesuaikannya dengan Trigger Condition: On completed, On progress dan On error.


AJAX Expressions

  • LastData
    Isi dari Response terakhir. Ini diset dalam Trigger Condition: On completed. Jika digunakan dalam Event yang berbeda, ini berisi Response atas Request terakhir yang telah selesai. System Expression: Tokenat mungkin berguna untuk memilah Response sederhana.

  • Progress
    Untuk mengambil nilai progres dari AJAX request dalam Event: On progress. Progres diwakili sebagai angka dari 0 sampai 1, misalnya: 0.5 untuk setengah selesai.



Komentar