函數取名用陣列方法?

作者: mucoci (奇寶~)   2013-12-09 22:31:13
晚安
假設小弟畫面有30個相同的元件
要作成滑鼠移到不同位置上的元件上 即顯示不同的提示框
元件為playitem[k].mc
要執行的函數為 visibleno[k]
小弟在這一段前,一開始讓visibleno變成陣列,接著再把它變成"文字"
var k:int=1;
for (k=1; k <= 31;k++)
{
var visibleno:Array=new Array();
visibleno=new textField();
後來失敗了 錯誤在於
playitem[k].mc.addEventListener(MouseEvent.MOUSE_OVER,visibleno[k]);//監聽
function visibleno[k](me:Event):void //函數名為visibleno[k]
^^^^^^
這裡不能有[],改成[1]也不行,
顯示是格式的問題
果然把visibleno[k],換成visibleno1就可以了
但其他的k就作不到了
{
tipbox[k].visible= true;//顯示第k個提示框
}
}
作者: cjcat2266 (CJ Cat)   2013-02-10 05:35:00
var visibleno:Array = new Array(30); 就好了..."listener 不能是 Null" 原因是你在addEventListener才定義 visibleno[k] = function
作者: fixxxxx (修)   2013-02-10 16:24:00
for (k=1; k <2 ;k++) 迴圈結束後k就已經是2了
作者: KawasumiMai (さあ、死ぬがいい)   2013-02-11 15:36:00
for的定義,不是即將變2所以跳開,而是因為變2了所以k<2不成立所以跳開,for外trace(k)一定是2
作者: puivujh (眼殘)   2013-02-18 09:30:00
為甚麼不把 k 丟給 function,然後在 function 裡做處理?

Links booklink

Contact Us: admin [ a t ] ucptt.com