Skip to content
15 Agustus 2010 / Jeffrey Hermanto Halimsetiawan

Aplikasi Flash dengan Microsoft Multipoint Mouse SDK 1.1


Integrasi antara Flash dengan Multipoint SDK dapat dilakukan dengan meng-embed Flash Content pada Visual C# Application.

Flash Multipoint WPF Arrangement

Secara garis besar susunannya adalah sebagai berikut :

  • Flash content (AxShockwaveFlash) di-embed pada sebuah User Control, yang diberi nama FlashUserControl
  • FlashUserControl akan diletakkan pada WindowsFormHost
  • WindowsFormHost diletakkan pada Grid
  • MultiPointButton transparan diletakkan pada Grid, di depan WindowsFormHost yang berfungsi untuk menangkap segala MultiPoint events
  • Grid diletakkan pada WPF Window

Nah, bagaimana cara untuk mengkomunikasikan MultiPoint events yang ditangkap oleh MultiPointButton ke aplikasi Flash? Aplikasi C# akan berkomunikasi menggunakan CallFunction API dari kelas ExternalInterface yang disediakan oleh Adobe Shockwave Flash OCX, sedangkan request dari aplikasi Flash ke aplikasi C# ditangani dengan men-subscribe FlashCall events dari Shocwave Flash OCX.

Flash Multipoint Architecture Diagram

Langkah-langkah yang harus dilakukan berikutnya adalah :

1. Load Flash file pada saat event window_Loaded

flashUC.LoadMovie(0, path + "/" + flashFileName);

2. Mengirimkan MultiPoint events dari C# ke Flash

private void MultiPointTestButton_MultiPointMouseLeftButtonUpEvent(object sender, RoutedEventArgs e)
{
    try
    {
        MultiPointButton mpb = (MultiPointButton)sender;
        if (mpb.Content != null)
        {
            MultiPointMouseEventArgs args = (MultiPointMouseEventArgs)e;
            //mendapatkan mouse ID
            int mouseID = args.DeviceInfo.ID;
            //memperoleh koordinat yang di-click oleh mouse ID tersebut
            Point pos = ((MultiPointMouseDevice)((DeviceInfo)(MultiPointSDK.Instance.MouseDeviceList[mouseID])).DeviceVisual).GetPosition();
            int x = (int)pos.X;
            int y = (int)pos.Y;
            //memberikan informasi ke flash bahwa telah terjadi mouse click
            flashUC.HandleMouseLeftButtonUp(x, y, mouseID.ToString(CultureInfo.InvariantCulture));
        }
    }
}

3.  Menerima MultiPoint events di Flash dari C#

ExternalInterface.addCallback ("HandleMouseLeftButtonUp", null, HandleMouseLeftButtonUp);
function HandleMouseLeftButtonUp(x:String, y:String, m:String):Void
{
// Logic yang menangani MultiPoint events
}

Secara internal,  aplikasi Flash menggunaan koordinat yang dikirimkan oleh aplikasi C# untuk mengetahui control mana yang event nya telah dibangkitkan oleh mouse clicked tersebut dan juga mouse ID untuk mengetahui pemain mana yang melakukan mouse clicked tersebut.

PS: Berdasarkan pengalaman dalam mengembangkan sebuah Flash Multipoint Game, jika flash movie telah berhasil di-load oleh aplikasi C# namun tidak dapat berjalan, silahkan unduh installer berikut : flashplayer_10_ax_debug.exe

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: