作者mucoci (奇宝~)
看板Flash
标题函数取名用阵列方法?
时间Mon Dec 9 22:31:13 2013
晚安
假设小弟画面有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个提示框
}
}
-------------------------------------------------------------------
後来小弟似乎觉得不对,改成
小弟在这一段前,一开始让visibleno变成阵列,接着再把它变成"函数"
var k:int=1;
for (k=1; k <= 31;k++)
{
var visibleno:Array=new Array();
playitem[k].mc.addEventListener(MouseEvent.MOUSE_OVER,visibleno[k]);//监听
function visibleno[k](me:Event):void //函数名为visibleno[k]
visibleno[k]=function():void
{
tipbox[k].visible= true;//显示第k个提示框
}
}
但是这次的错误是 参数 listener 不能是 Null
请高手协助,是我观念错误还是哪写错了
不然只能写30次了@@"
感恩
-----------------------------------------------------------
後续
C大说对了,监听时,visibleno[k]这个function仍未定义,所以失败
後来小弟决定先定义visibleno[k],再监听程式码改成如下
var tipbox:Array=new Array(24); //这是tipbox的宣告
var k=1;
for (k=1; k <2 ;k++) -------------------//这边改为k最大只能1的状况来测
^^^^^
{
var visibleno:Array=new Array(30);
function visibleno[k](me:Event):void //函数名为visibleno[k]
visibleno[k]=function():void
{
列出k-----追踪k值的B点
tipbox[k].visible= true;//显示第k个提示框
^^^^^^^^
}
playitem[k].mc.addEventListener(MouseEvent.MOUSE_OVER,visibleno[k]);//监听
列出k------追踪k值的A点
}
此次仍是错误,显示 词汇未定义且没有属性
小弟後来发现,A点追踪出来的K值正常,都是1
B点的K值,在滑入滑鼠後显示,竟然是 2 !!!!!! @@"
但K值小弟在一开始有限制,visbleno函数中也没有任何程式码
就只有新加的追k值和显示tipbox而已
有高手看得出问题在哪吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.173.24.226
1F:推 cjcat2266:var visibleno:Array = new Array(30); 就好了... 12/10 05:35
2F:→ cjcat2266:"listener 不能是 Null" 原因是你在addEventListener 12/10 05:36
3F:→ cjcat2266:才定义 visibleno[k] = function 12/10 05:36
※ 编辑: mucoci 来自: 218.173.24.226 (12/10 14:30)
4F:推 fixxxxx:for (k=1; k <2 ;k++) 回圈结束後k就已经是2了 12/10 16:24
5F:→ KawasumiMai:for的定义,不是即将变2所以跳开,而是因为变2了所以 12/11 15:36
6F:→ KawasumiMai:k<2不成立所以跳开,for外trace(k)一定是2 12/11 15:37
7F:→ puivujh:为甚麽不把 k 丢给 function,然後在 function 里做处理? 12/18 09:30