作者hirabbitt (兔子)
看板Flash
标题[问题] addEventListener 隐含function的写法
时间Tue May 24 14:15:28 2011
如果我是写
addEventListener(事件, new function(E:事件):viod{
//要做的事
});
和另一种写法
addEventListener(事件, 函式);
function 函式(E:事件):void{
//要做的事
}
在许多物件都要addEventListener的情况下
是不是第二种比较好?
因为第一种会变成每个物件有自己的function
第二种是让每的物件指向相同的function
会这样问是因为我觉得第一种很漂亮
所以通通都用了第一种
等到一次创造很多物件时
才发现会LAG...
--
◤ __ \__◣
◢◤◢◤ ψhirabbitt
◢ ◤ ◢███◣
◢███◣
我不是m █████
█████ 我不是s
██
●█
● █▇███
是温柔 ██
╱╲ ●◥█████◣● 是傲娇
◥
╱█
╱╱ ● ◥████ ˇ
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.13.127.91
※ 编辑: hirabbitt 来自: 163.13.127.91 (05/24 14:19)
1F:→ aquarianboy:我觉得第二种比较漂亮说 :) 05/24 14:24
2F:推 cjcat2266:第二种比较漂亮吧,第一种有种ad hoc的感觉 05/24 14:42
3F:→ cjcat2266:而且第一种你需要自已保留function reference 05/24 14:43
4F:→ cjcat2266:否则之後就无法remove event listener 05/24 14:43
5F:→ cjcat2266:然後你的anonymous function就会变成orphan 05/24 14:43
6F:→ cjcat2266:所占用的记忆体空间永远无法被GC释放掉 05/24 14:44
7F:推 STARGAZERs:我想说... 你要不要乾脆把所有东西都写成一个物件... 05/24 15:20
8F:→ STARGAZERs:这样应该比较漂亮也比较没有简洁的问题 05/24 15:21
9F:→ hirabbitt:把所有东西都包在一个物件里吗 05/24 15:35
10F:推 Assyla:第一种我只有在function要另外传参数进去时才会用 05/24 15:45
11F:推 peacedove:同楼上 05/24 16:50
12F:→ hirabbitt:remove event listener是说delete吗? 05/24 17:22
13F:推 etrexetrex:如果函数很长 用第二种 05/24 18:06
14F:→ etrexetrex:如果需要removeEventListener 用第二种 05/24 18:07
15F:→ etrexetrex:第一种比较像是 jQuery 的写法 05/24 18:08
16F:→ hirabbitt:我大概是那种 觉得越复杂越漂亮的人... Orz 05/24 18:33
17F:推 AizawaYuichi:写成同一行看起来是很帅,可是有时候徒增困扰 05/24 19:08
18F:推 etrexetrex:第一种比较像 jQuery, 第二种比较像C#,Java 05/24 19:18
19F:→ etrexetrex:不过大部分写 as3 的人都倾向於C#, Java 05/24 19:19
20F:→ hirabbitt:可是我是反jQuery派的耶...(根本不想学 05/24 19:33
21F:推 AizawaYuichi:第二种可以跑回圈呼叫同一个function 05/24 22:07
22F:→ AizawaYuichi:但是第一种跑回圈会占用多余记忆体的样子 05/24 22:07
23F:→ hirabbitt:对啊 我就是用for去跑它 才发现会lag的... 05/25 05:45
24F:→ StranGhost:第一种有好处喔 可以利用这方法传Value 05/26 22:47
25F:→ aquarianboy:第二种当然也行,所以那应该不算是好处 05/27 06:37
26F:推 StranGhost:第二种要怎麽传 是呼叫後再呼叫吗 06/05 10:59