0

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

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

}
}
4

2 回答 2

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);
于 2013-03-27T09:46:48.377 回答
0

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

切换器.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);
}

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

于 2013-03-29T10:44:33.930 回答