Re: [問題] as2如何持續監聽一事件?
→
02/20 11:16,
02/20 11:16
→
02/20 11:17,
02/20 11:17
你可以把想做的事情都丟到一個Array裡面
var a:Function = function():Void {
trace("function a()");
};
var b:Function = function():Void {
trace("function b()");
};
var c:Function = function():Void {
trace("function c()");
};
var array:Array = [a, b, c];
onEnterFrame = function():Void {
for (var i:Number = 0; i < array.length; i++) {
//應該是不用做轉型,不過做轉型看起來比較安全
Function(array[i])();
}
};
之後如果不想要繼續讓b被執行
就可以把b從array裡面splice掉
array.splice(array.indexOf(b), 1);
想要讓b重新開始被持續持行
就把b給push回去就好
array.push(b);
如果是要把他插到c前面
可以把b再splice回去
array.splice(array.indexOf(c), 0, [b]);
→
02/20 11:19,
02/20 11:19
→
02/20 11:19,
02/20 11:19
onEnterFrame是一個type為Function的property
所以onEnterFrame = a;
做的是讓onEnterFrame指到a這個function
而onEnterFrame = a();
做的卻是把onEnterFrame指到a()回傳的東西
但是a()回傳的東西是Void
我沒有做過這種事情,但是我大膽假設這跟onEnterFrame = null意義是相同的
至於為什麼會執行一次
是因為你寫了a()
凡是一個function name或者一個指到某個Function的property後面
加上了()就表示你要呼叫他,然後回傳他的值
a()被執行一次就是這樣來的,反而跟"onEnterFrame = "這段沒有什麼關係
--
CJ Cat = Croa'J Cat = Cockroach Cat = 西街凱特 = 蜚蠊貓 = 蟑螂貓
Blog http://cjcat.blogspot.com
Gallery http://cjcat2266.deviantart.com
ptt2 Board CJWorkshop - 阿多比閃光(Adobe Flash)研討區
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.228.85.185
※ 編輯: cjcat2266 來自: 61.228.85.185 (02/20 11:45)
推
02/20 12:01, , 1F
02/20 12:01, 1F
推
02/20 14:29, , 2F
02/20 14:29, 2F
→
02/20 14:31, , 3F
02/20 14:31, 3F
→
02/20 14:48, , 4F
02/20 14:48, 4F
→
02/20 14:48, , 5F
02/20 14:48, 5F
→
02/20 14:48, , 6F
02/20 14:48, 6F
→
02/20 14:48, , 7F
02/20 14:48, 7F
推
02/20 16:13, , 8F
02/20 16:13, 8F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Flash 近期熱門文章
PTT數位生活區 即時熱門文章