多个按钮的 AS2 数组共享相同的操作以及单独的操作
Posted
技术标签:
【中文标题】多个按钮的 AS2 数组共享相同的操作以及单独的操作【英文标题】:AS2 Array of Multiple Buttons Sharing Same Actions As Well as Individual Actions 【发布时间】:2015-01-11 00:32:55 【问题描述】:我有 5 个按钮 mcs,它们都共享相同的翻转/滚动功能。但是,它们在 rollOver 上也都有特定的操作,例如 mc1 也会在 rollOver 上执行以下操作:
TweenLite.to(tips_mc.tip1, 1, _alpha:100 );
如何将每个单独的调用添加到数组中的 rollOver 上的每个 mc?
我的数组如下:
var btnArray:Array = new Array(mc1, mc2, mc3, mc4, mc5);
for (i=0; i<btnArray.length; i++)
///initial state///
btnArray[i].enabled = true;
btnArray[i].id = i;
btnArray[i].onRollOver = function()
this.gotoAndPlay("over");
;
btnArray[i].onRollOut = function()
this.gotoAndPlay("out");
;
非常感谢任何帮助!谢谢!
【问题讨论】:
【参考方案1】:您可以在不同的functions
中编写您的操作,然后像这样调用它们:
var functionsArray:Array /* of Function */ = [f1, f2, f3, f4, f5];
var btnArray:Array /* of MovieClip */ = [mc1, mc2, mc3, mc4, mc5];
var l:Number = btnArray.length;
for (var i:Number = 0; i < l; i++)
btnArray[i].enabled = true;
btnArray[i].id = i;
btnArray[i].onRollOver = function()
functionsArray[this.id](); // you invoke your function here
this.gotoAndPlay("over");
btnArray[i].onRollOut = function()
this.gotoAndPlay("out");
function f1():Void trace("I'm the function 1");
function f2():Void trace("I'm the function 2");
function f3():Void trace("I'm the function 3");
function f4():Void trace("I'm the function 4");
function f5():Void trace("I'm the function 5");
【讨论】:
谢谢 HelloFlash,我很抱歉,但我仍然不明白我将如何确保 f1 仅在 mc1 翻转时触发等...您介意解释一下吗?抱歉 - 以前从未使用过数组。谢谢! user2163224 - 我不明白你的问题:你只需要应用代码。当您超过 mc1 时,将调用 f1。 user2163224 - 当您超过 mc1 的 btnArray[0] 时,调用 f1 的 functionsArray[0]。 啊,非常感谢!现在我明白了!以上是关于多个按钮的 AS2 数组共享相同的操作以及单独的操作的主要内容,如果未能解决你的问题,请参考以下文章
两个单独的 UIButtons 共享相同的按下...不能同时按下两个