动作脚本3.0 if else语句

时间:2013-03-27 08:55:10

标签: actionscript-3 flash

需要通过点击事件做几件事。我是初学者,所以有没有其他方法来编写这段代码?通过单击此按钮,它将转到下一帧,根据声明,几个按钮将可见或不可见。我用这种方式编写代码,它说有语法错误,但我找不到任何。希望你们明白这一点并帮助我。 :)谢谢!

review_btn.addEventListener(MouseEvent.CLICK, review1)
function review1(event:MouseEvent):void{

if(rvw1 == "Correct"){ 
    gotoAndStop(3627);
    help1.visible = false

    }
else{ 
    gotoAndStop(3627);
    help1.visible = true

}
}

review_btn.addEventListener(MouseEvent.CLICK, review2)
function review2(event:MouseEvent):void{

if(rvw2 == "Correct"){ 
    gotoAndStop(3627);
    help2.visible = false

    }
else{ 
    gotoAndStop(3627);
    help2.visible = true

}
}

review_btn.addEventListener(MouseEvent.CLICK, review3)
function review3(event:MouseEvent):void{

if(rvw3 == "Correct"){ 
    gotoAndStop(3627);
    help3.visible = false

    }
else{ 
    gotoAndStop(3627);
    help3.visible = true

}
}

review_btn.addEventListener(MouseEvent.CLICK, review4)
function review4(event:MouseEvent):void{

if(rvw4 == "Correct"){ 
    gotoAndStop(3627);
    help4.visible = false

    }
else{ 
    gotoAndStop(3627);
    help4.visible = true

}
}

review_btn.addEventListener(MouseEvent.CLICK, review5)
function review5(event:MouseEvent):void{

if(rvw5 == "Correct"){ 
    gotoAndStop(3627);
    help5.visible = false

    }
else{ 
    gotoAndStop(3627);
    help5.visible = true

}
}

2 个答案:

答案 0 :(得分:1)

我会尝试一下。看起来唯一的区别是在每个方法中你需要匹配“helpX”.visible和“rvwX”等于字符串“Correct”,其中X是1-5的数字。无论如何,gotoAndStop()框架都是相同的。此外,所有五个都是在同一个按钮。我将假设剪辑'帮助'是在舞台上定义的影片剪辑,如果它们来自其他东西我会将它们存储在数组中以进行循环而不是'构建'名称并找到那样的引用为了清楚起见。

function review(event:MouseEvent):void {
    for(var counter:int = 1; counter < 6; counter++){
        this["help" + counter].visible = (this["rvw" + counter] != "Correct");
    }
    this.gotoAndStop(3627);
}
review_btn.addEventListener(MouseEvent.CLICK, review);

答案 1 :(得分:0)

我认为你必须做一个有2个字段的课程:“help”和“rvw”(让我称之为“Switcher”)。此外,它可能包含设置可见性的功能(可能,不一定,此功能也可以在您的主类中):

Switcher.as:

import flash.display.MovieClip;

public class Switcher {
    private var help:MovieClip;
    private var rvw:String;

    public function setVisibility() {
        help.visible = !(rvw == "Correct");
    }
}

然后你必须在主类中创建一个Switcher对象数组,并且只使用一个“review”处理程序:

function review(event:MouseEvent):void {
    for each(var sw:Switcher in switchersArray) {
        sw.setVisibility();
    }
    this.gotoAndStop(3627);
}

上一个答案的代码可以正常工作,但恕我直言,创建类似对象的数组(或Vector)比做大量的help1,help2,help3等变量要好。