我在舞台上有3个MC,都是alpha = 0
var mcArray:Array = [mc1,mc2,mc3];
for (var j:int = 0; j < mcArray.length; j++)
{
mcArray[j].alpha = 0;
}
我有一个按钮,一旦我点击它然后它将使MC成为alpha = 1
revealBtn.buttonMode = true;
revealBtn.useHandCursor = false;
revealBtn.addEventListener(MouseEvent.CLICK, revealClick);
function revealClick(event:MouseEvent):void
{
for (var j:int = 0; j < mcArray.length; j++)
{
mcArray[j].alpha = 1;
}
}
但是使用上面的脚本会使所有3 MC成为alpha = 1.
我知道这可以通过使用以下代码来实现:
if(mc1.alpha!=1){
mc1.alpha=1
}
if(mc2.alpha!=1){
mc2.alpha=1
}
if(mc3.alpha!=1){
mc3.alpha=1
}
此代码将提供我想要实现的内容,但如果有超过3个MC,则脚本行将更长。
答案 0 :(得分:3)
revealBtn.buttonMode = true;
revealBtn.addEventListener(MouseEvent.CLICK, revealClick);
var mcArray:Array = [mc0,mc1,mc2];
function revealClick(event:MouseEvent):void
{
for(var i:uint = 0; i<mcArray.length; i++){
if(this['mc'+i].alpha !== 1){
this['mc'+i].alpha = 1;
break;
}
}
}
答案 1 :(得分:1)
不,if语句仍会将所有三个都转换为alpha 1.
点击后,您想将三个中的哪一个设置为alpha = 1?
您可以使用类似的东西在数组中第一个没有alpha = 1的mc上设置alpha = 1
function revealClick(event:MouseEvent):void {
for (var j:int = 0; j < mcArray.length; j++){
if ( mcArray[j].alpha != 1 ){
mcArray[j].alpha = 1;
return;
}
}
}
答案 2 :(得分:1)
只需使用计数器。
var cnt : int = -1;
function revealClick(event:MouseEvent):void
{
if(++cnt < mcArray.length) mcArray[cnt].alpha = 1;
}