有什麼方法可以模擬AS3中的點擊事件?我試試這個:模擬AS3中的點擊事件
element.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN, true, false));
但點擊事件不會觸發它。
有什麼方法可以模擬AS3中的點擊事件?我試試這個:模擬AS3中的點擊事件
element.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN, true, false));
但點擊事件不會觸發它。
如果您正在收聽MouseEvent.CLICK
,則發送MouseEvent.CLICK
。您現在正在調度MouseEvent.MOUSE_DOWN
element.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
我很好奇,是閃存的調度處理程序,它是否觸發了MOUSE_DOWN事件? – eLouai
@eLouai如果您正在偵聽MOUSE_DOWN事件,Flash將不處理'CLICK'事件,反之亦然。當你點擊鼠標時觸發'MOUSE_DOWN'事件,釋放鼠標時觸發'MOUSE_UP'。 'CLICK'事件相當於'MOUSE_DOWN'後面跟着'MOUSE_UP'。然而,分別調度'MOUSE_DOWN'和'MOUSE_UP'不會觸發'CLICK'事件 –
根據Adobe的文檔,他們清楚地聲明瞭這一點......「對於發生的點擊事件,它必須始終按照該順序執行這一系列事件發生的事件:mouseDown事件,然後是mouseUp,這兩個事件的目標對象必須是相同的,否則不會發生click事件,在mouseDown或mouseUp事件之間可以隨時發生任意數量的其他鼠標事件; click事件仍然發生。「但不幸的是,我似乎無法影響它,所以無論是系統監聽ANOTHER響應的事件流,還是存在錯誤。 – eLouai
您必須發送MouseEvent.CLICK事件。
element.dispatchEvent(new MouseEvent(MouseEvent.CLICK, true, false));
爲了模擬,你首先需要調度click事件:
element.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN, true, false));
接着是:
element.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_UP, true, false));
在MOUSE_UP事件的處理程序將隨後發行點擊事件(如果鼠標位於元素的上方,則可能需要在調度的事件中設置mouse_x和mouse_y變量)
你試圖模擬點擊的元素是什麼? – stormbreaker