Re: [問題] 如何以自定參數主動觸發滑鼠事件?

看板Flash作者 (OSANA)時間16年前 (2009/11/15 16:25), 編輯推噓2(203)
留言5則, 3人參與, 最新討論串3/4 (看更多)
※ 引述《aquarianboy (高 見龍)》之銘言: : ※ 引述《osanaosana (OSANA)》之銘言: : : 語言:Action Script 3.0 : : 編譯版本:Flash 9 : : 我希望可以藉由不同的觸發方式主動令滑鼠事件發生, : : 觸發的時候給予特定的滑鼠位置、滑鼠按鍵狀態。 : : 我要給AS3程式新手用,讓他們只要在Flash CS3設定好按鈕元件與簡單的動作程式, : : 就可以藉由滑鼠以外的方式觸發按鈕元件。 : : 例如:我在Webcam偵測到攝影畫面的某一區塊有變動,此時命令滑鼠事件發生, : : 設定事件的滑鼠位置為(100,100),按下左鍵狀態,但是"不影響"真滑鼠的位置與狀態 : : 令該位置的Flash按鈕被觸發,進行該按鈕自訂的動作(AS3程式新手寫的) : : 這是我自己的想法,如果這辦法不行的話,有其他方法可以達到這目的嗎? : 我看不是很懂上面的描述,以下是我猜的: : 其實你並沒辦法改變滑鼠"真實"的位置 : 但你可以用先把滑鼠游標透過Mouse.hide()方法把它藏起來 : 然後再做一個做一個假的滑鼠游標貼上去,看起來好像就可以操作滑鼠一樣 : 至於要觸發按鈕的click listener也是可以用騙的 : test_btn.addEventListener(MouseEvent.CLICK, test_click); : // 把參數預設值設定為null : function test_click(evt:MouseEvent = null):void : { : trace("I'm clicked!"); : } : test_click(); : 以上,供你參考 感謝您的意見... 可惜這個騙法不能用,因為寫程式的人不會知道介面上的按鈕叫做test_btn 所以我想直接弄一個假的滑鼠事件去觸發按鈕 我的目的不是改變滑鼠的位置或是狀態... 而是偽造一個滑鼠按鍵事件去觸發Flash按鈕 我希望最終結果是這樣的: 一個Fla檔案,以及上述功能的AS3程式,假設叫做 fmouse.as Fla內容只有在屬性 > 文件類別 寫了 fmouse,其他內容為預設值,也就是空白狀態 然後丟給程式新手...假設新手叫做 j j不會改fmouse.as的東西,因為j只是新手,看不懂原PO嚇死人的程式 這時j只要做出一個Flash按鈕,寫了幾行動作程式,編譯執行... 這時候Flash按鈕除了用滑鼠真的去click進行觸發之外, 也可以透過webcam進行畫面偵測,滿足條件時主動發出一個假滑鼠事件, 去觸發按鈕的動作程式... 關鍵在於原來的系統可能是這樣 滑鼠按下左鍵 > MouseEvent.CLICK 發動 > addEventListener設定的函式 今天原po要加新規則上去 ,變成這樣 滑鼠按下左鍵 > MouseEvent.CLICK 發動 > addEventListener設定的函式 ^ 原po程式呼叫 ^ 希望大家能了解... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.228.133.88

11/15 16:31, , 1F
還是看不太懂 有什麼必要去假造MouseEvent
11/15 16:31, 1F

11/15 16:31, , 2F
而不是直接去call那個addEventListener設定的函式?
11/15 16:31, 2F

11/15 16:33, , 3F
如果真的要假造的話 直接去new一個然後dispatch不就好了?
11/15 16:33, 3F

11/15 22:18, , 4F
感謝scars的提示,目前正在嘗試中...
11/15 22:18, 4F

11/15 23:47, , 5F
要假造event,可以參考EventDispatcher.dispatchEvent()
11/15 23:47, 5F
文章代碼(AID): #1A_xiJYK (Flash)
文章代碼(AID): #1A_xiJYK (Flash)