Tip Cepat: Mendeteksi pengguna tidak aktif dalam Flash Movie
() translation by (you can also view the original English article)
Dalam tips cepat ini, Anda akan mempelajari bagaimana mendeteksi ketika pengguna telah nonaktif untuk waktu yang ditentukan. Tetap membaca untuk mengetahui bagaimana caranya!
Tinjauan Hasil akhir
Mari kita lihat pada hasil akhir yang kita akan kerjakan:
Langkah 1: Ikhtisar singkat
Kita akan mendeteksi interaksi pengguna menggunakan event Keyboard dan Mouse, memeriksa aktivitas terakhir menggunakan Timer. Kami akan menampilkan pesan jika waktu yang ditentukan telah berlalu tanpa aktivitas.
Langkah 2: Membuat File Flash Anda
Luncurkan Flash dan membuat dokumen Flash baru.

Mengatur ukuran stage ke 550x250px.
Langkah 3: Antarmuka



Ini adalah antarmuka yang akan kita gunakan, latar belakang sederhana dengan pesan yang mengatakan pengguna untuk menunggu lima detik. Layar berikut akan ditampilkan ketika lima detik telah berlalu - mengkonversi ke MovieClip dan tandai kotak Export for ActionScript. Dan namai TheScreen.



Tentu saja ini adalah hanya salah satu dari banyak hal yang dapat Anda lakukan ketika melewati masa tidak aktif, GrooveShark misalnya, menjeda musik dan menunjukkan pesan yang meminta pengguna jika ia ingin terus menggunakan aplikasi. Terserah Anda untuk memutuskan apa yang harus dilakukan.
Langkah 4: ActionScript
Ini adalah kelas yang melakukan pekerjaan, membaca komentar dalam kode untuk mengetahui tentang perilaku.
1 |
|
2 |
package
|
3 |
{
|
4 |
import flash.display.Sprite; |
5 |
import flash.events.TimerEvent; |
6 |
import flash.utils.Timer; |
7 |
import flash.events.MouseEvent; |
8 |
import flash.events.KeyboardEvent; |
9 |
|
10 |
public class Main extends Sprite |
11 |
{
|
12 |
|
13 |
private var screen:TheScreen = new TheScreen(); //Creates a new instance of TheScreen |
14 |
private var added:Boolean = false; //A boolean to check if the screen has been added to stage |
15 |
|
16 |
/* Timer Object */
|
17 |
|
18 |
private var timer:Timer = new Timer(5000);//Five seconds for this example |
19 |
|
20 |
public function Main():void |
21 |
{
|
22 |
timer.start(); //Starts the timer |
23 |
timer.addEventListener(TimerEvent.TIMER, showMsg); //Listens for the timer to complete |
24 |
|
25 |
/* Mouse and keyboard listeners, stops the timer when a event occurs, if you are using other input method, like the microphone, add its event here */
|
26 |
|
27 |
stage.addEventListener(MouseEvent.MOUSE_MOVE, stopTimer); |
28 |
stage.addEventListener(MouseEvent.MOUSE_DOWN, stopTimer); |
29 |
stage.addEventListener(MouseEvent.MOUSE_UP, stopTimer); |
30 |
|
31 |
stage.addEventListener(KeyboardEvent.KEY_DOWN, stopTimerK); |
32 |
stage.addEventListener(KeyboardEvent.KEY_UP, stopTimerK); |
33 |
}
|
34 |
|
35 |
/* If there is no activity for 5 seconds, a message will display */
|
36 |
|
37 |
private function showMsg(e:TimerEvent):void |
38 |
{
|
39 |
addChild(screen); //Adds the screen |
40 |
added = true; |
41 |
}
|
42 |
|
43 |
/* If there's activity, we clear the message and reset the timer */
|
44 |
|
45 |
private function stopTimer(e:MouseEvent):void |
46 |
{
|
47 |
if (added) |
48 |
{
|
49 |
removeChild(screen); |
50 |
added = false; |
51 |
}
|
52 |
|
53 |
timer.stop(); |
54 |
timer.start(); |
55 |
}
|
56 |
|
57 |
private function stopTimerK(e:KeyboardEvent):void |
58 |
{
|
59 |
if (added) |
60 |
{
|
61 |
removeChild(screen); |
62 |
added = false; |
63 |
}
|
64 |
|
65 |
timer.stop(); |
66 |
timer.start(); |
67 |
}
|
68 |
}
|
69 |
}
|
Langkah 5: Dokumen kelas
Ingat untuk menambahkan nama kelas ke kelas bidang di bagian Publish panel properti.

Kesimpulan
Ini adalah cara yang berguna dan mudah untuk mendeteksi aktivitas pengguna. Dalam contoh ini aktivitas terdeteksi didasarkan dalam event Mouse dan Keyboard, tetapi Anda dapat dengan mudah menambahkan mikrofon atau event inputan lainnya untuk memenuhi kebutuhan Anda.
Saya harap Anda menyukai Tip Cepat ini, terima kasih telah membaca!