作者LCDbest (掉进程式的深崖)
看板Flash
标题[问题] Flex与Flash事件的观念?
时间Wed May 13 17:05:48 2009
又来提问了XD,最近深入研究事件,也搞的一个头两个大,
所以想询问看看各位大大一些观念>"<...
以下是Flash里注册监听事件。
function eventResponse(eventObject:EventType):void
{
// Actions performed in response to the event go here.
}
eventTarget.addEventListener(EventType.EVENT_NAME, eventResponse);
以监听器来说,
必须知道三个
1."eventTarget"(事件目标,也就是按下的button之类的)
2.EventType的种类(例如按下,滑入,),
3.发生事件後要执行的function(这里是eventResponse)
这样当事件发生,监听器才会知道,这点没啥问题@@..
但问题来了,.....
1.为什麽function eventResponse(eventObject:EventType):void
要传入事件物件(这里是eventObject)呢??...
当然,传进去,可以利用事件物件做一些事,当然是很好,
但原则上,就算没传入事件物件,function还是可以执行不是吗@@?
2.在flex里面,一个元件(mxml下)注册事件的方法如下。
<mx:button id="btn" click="eventResponse()"/>
function eventResponse():void{}
好像Flex里,可以不用传一个事件进去!?,那为何Flex就可以不用传呢??
( 还是我记错了- -?,如果记错了我先道歉 >.< )
感谢各位看完这乱乱的文章,......
还请大大指教^^谢谢^^
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.117.3.123
1F:推 cjcat2266:MXML编译会生成AS,那个AS有自动帮你补上"e:Event" 05/13 17:06
2F:→ cjcat2266:还有AS3的event listener model就是要传事件,这是规定 05/13 17:07
3F:→ cjcat2266:要不传入事件而呼叫函式也可以,请参考 #19v3Imn5 05/13 17:08
4F:→ LCDbest:嗯~先谢谢大大了^^,有猜想到MXML编成AS的时候会自动加 05/13 18:05
5F:→ LCDbest:但比较好奇的是,为何需要传入"事件物件"进去.. 05/13 18:06
6F:推 cjcat2266:因为有时候关於该特定事件的资讯需要用这个物件来取得 05/13 18:07
7F:→ cjcat2266:如KeyboardEvent.keyCode可以知道是哪个键被按下或放开 05/13 18:08
8F:→ cjcat2266:MouseEvent.delta可以知道滑鼠滚轮是往上还往下滚 05/13 18:08
9F:→ cjcat2266:ProgressEvent.bytesLoaded可以知道物件载入的目前进度 05/13 18:08
10F:→ aquarianboy:如果你一直向继承的祖先挖骨,在IEventDispatcher可以 05/13 18:11
11F:→ aquarianboy:翻到addEventListener的说明,写着"Registers an 05/13 18:12
12F:推 aquarianboy:event listerer object with an EventDispatcher 05/13 18:12
13F:→ aquarianboy:object so that the listener recevies notification 05/13 18:13
14F:→ aquarianboy:of an event" 05/13 18:13
15F:→ aquarianboy:你的event handler会收到通知,如同cj推文的,透过这 05/13 18:16
16F:→ aquarianboy:个通知,你的handler可以知道是谁发的通知,你可以做 05/13 18:17
17F:→ aquarianboy:更多的控制或调整 (推文好累) 05/13 18:18
18F:→ LCDbest:不好意思喔XD,有劳两位大大了,晚点如果有整理出来 05/13 18:23
19F:→ LCDbest:在PO一篇到板上,^^,目前大致上了解了,谢谢喔!!感恩 05/13 18:23
20F:→ LCDbest:稍微看完了,就如大大大所说的, 05/14 09:45
21F:→ LCDbest:(好像也没东西能整理一篇了>"<... )。 05/14 09:46
22F:→ LCDbest:总之,就是为了做更多的控制需要,所以必须一定要传入, 05/14 09:47
23F:→ LCDbest:再次谢谢两位大大了>"<...感谢!~ 05/14 09:47
24F:→ aquarianboy:也不太能这样说,cj推文第二行,"这是规定" 05/14 10:21
25F:→ aquarianboy:因为传入了事件,如果需要的话,可以做更多的控制 05/14 10:22
26F:→ aquarianboy:但即使不做更多控制,也是必须传入事件 05/14 10:26
27F:→ darKyle:写在mxml里其实会被包上一层function(event:Event){} 05/15 14:27
28F:→ LCDbest:感谢各位大大的解说,小弟受教了^^ 05/15 16:59