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" と一致させる必要があることです。X は 1 ~ 5 の数字です。gotoAndStop() フレームは関係なく同じです。また、5 つすべてが同じボタンから外れていることを意味します。クリップの「ヘルプ」はステージで定義されたムービークリップであると仮定します。それ以外の場合は、名前を「構築」して参照を見つける代わりに、ループする配列に格納します。わかりやすくするために。

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

「help」と「rvw」(「Switcher」と呼びましょう)の2つのフィールドを持つクラスを作成する必要があると思います。また、可視性を設定する関数を含めることもできます (必須ではありませんが、この関数はメイン クラスにも含めることができます)。

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 のオブジェクトの配列を作成し、「レビュー」ハンドラを 1 つだけ使用する必要があります。

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 に答える