作者osanaosana (OSANA)
看板Flash
标题Re: [问题] 如何以自定参数主动触发滑鼠事件?
时间Sun Nov 15 16:25:52 2009
※ 引述《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
1F:推 scars:还是看不太懂 有什麽必要去假造MouseEvent 11/15 16:31
2F:→ scars:而不是直接去call那个addEventListener设定的函式? 11/15 16:31
3F:→ scars:如果真的要假造的话 直接去new一个然後dispatch不就好了? 11/15 16:33
4F:→ osanaosana:感谢scars的提示,目前正在尝试中... 11/15 22:18
5F:推 cjcat2266:要假造event,可以参考EventDispatcher.dispatchEvent() 11/15 23:47