2011-09-23 42 views
5

Có cách nào để mô phỏng sự kiện nhấp trong AS3 không? Tôi đang thử điều này:Mô phỏng sự kiện nhấp trong AS3

element.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN, true, false)); 

Nhưng sự kiện nhấp chuột không kích hoạt.

+0

Yếu tố nào bạn đang cố gắng mô phỏng nhấp chuột? – stormbreaker

Trả lời

20

Nếu bạn đang nghe MouseEvent.CLICK thì gửi MouseEvent.CLICK. Bạn đang cử MouseEvent.MOUSE_DOWN

element.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); 
+0

Tôi tò mò, là người xử lý công văn của Flash CHẤP NHẬN việc kích hoạt sự kiện MOUSE_DOWN? – eLouai

+0

@eLouai nếu bạn đang nghe sự kiện 'MOUSE_DOWN', Flash sẽ không xử lý các sự kiện' CLICK' và ngược lại. Sự kiện 'MOUSE_DOWN' được kích hoạt khi bạn nhấp chuột,' MOUSE_UP' khi bạn nhả chuột. Sự kiện 'CLICK' tương đương với' MOUSE_DOWN' theo sau là 'MOUSE_UP'. Tuy nhiên, việc gửi 'MOUSE_DOWN' và' MOUSE_UP' riêng lẻ sẽ không kích hoạt sự kiện 'CLICK' –

+0

Theo tài liệu của Adobe, họ nêu rõ ..." Đối với sự kiện nhấp chuột xảy ra, nó phải luôn theo chuỗi sự kiện này theo thứ tự sự kiện xuất hiện: sự kiện mouseDown, sau đó mouseUp, đối tượng đích phải giống hệt nhau cho cả hai sự kiện này, nếu không, sự kiện nhấp chuột sẽ không xảy ra. vẫn xảy ra. " nhưng tiếc là tôi dường như không thể ảnh hưởng đến nó, do đó, hoặc là hệ thống đang nghe trên luồng sự kiện KHÁC mà nó phản ứng lại hoặc có lỗi. – eLouai

3

Bạn phải gửi một sự kiện MouseEvent.CLICK.

element.dispatchEvent(new MouseEvent(MouseEvent.CLICK, true, false)); 
0

Để mô phỏng một sự kiện CLICK bạn cần đầu tiên để công văn:

element.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN, true, false)); 

theo sau là một:

element.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_UP, true, false)); 

Trên sự kiện MOUSE_UP xử lý sau đó sẽ phát hành sự kiện nhấp chuột (nếu con chuột vượt quá phần tử, vì vậy bạn có thể cần phải đặt các biến mouse_x và mouse_y trong sự kiện được gửi đi.

Các vấn đề liên quan