こんにちは、1 つのフレームに 4 つのボタンがあり、4 つのボタンすべてをランダムな順序でクリックすると、別のフレームに移動する方法がわかりません。条件は 1 つです。4 つのボタンすべてを少なくとも 1 回クリックする必要があります。
私のボタン:フレーム1のButton1 Button2 Button3 Button4 - alがクリックされたとき - フレーム2に移動
こんにちは、1 つのフレームに 4 つのボタンがあり、4 つのボタンすべてをランダムな順序でクリックすると、別のフレームに移動する方法がわかりません。条件は 1 つです。4 つのボタンすべてを少なくとも 1 回クリックする必要があります。
私のボタン:フレーム1のButton1 Button2 Button3 Button4 - alがクリックされたとき - フレーム2に移動
これを行うためのかなり一般的な方法を次に示します。
private var _buttonsRemaining:int;
private function setup():void{
button1.addEventListener(MouseEvent.CLICK,onButtonClicked);
button2.addEventListener(MouseEvent.CLICK,onButtonClicked);
button3.addEventListener(MouseEvent.CLICK,onButtonClicked);
button4.addEventListener(MouseEvent.CLICK,onButtonClicked);
_buttonsRemaining = 4;
}
private function onButtonClicked(e:MouseEvent):void{
(e.target as EventDispatcher).removeEventListener(MouseEvent.CLICK,onButtonClicked);
_buttonsRemaining --;
if(_buttonsRemaining <= 0){
allClicked();
}
}
private function allClicked():void{
trace("all buttons clicked.");
}
上記とは異なり、イベントに適したメソッドとして「allClicked」を宣言するのが好きです。このようにして、イベント (おそらく Event.COMPLETE) をディスパッチして、メソッドをトリガーできます。
private function allClicked(e:Event=null):void{
//...
}
あなたの問題を正しく理解しているかどうかわかりません。ビューコントローラーのビューを「フレーム化」することを意味していて、最初のビューの4つのボタンすべてが少なくとも1回押されたらすぐに、別のビューコントローラーの別のビューを表示したいと思います。
ストーリーボードで定義された 4 つのボタンと共に、最初のビュー コントローラーとそのビューが既にあると仮定します。その後、新しいビュー コントローラーをライブラリからストーリーボードにドラッグできます。UIViewController
アプリでの新しいサブクラスを定義し、ストーリーボードで新しいビュー コントローラーのクラスをこの新しいサブクラスに設定する必要がありました。
次に、すべてのボタンが押されたかどうかを確認する必要がありました。@property bool buttonXpressed
したがって、ボタン X ごとに1 つ定義しYES
、このプロパティをIBAction
このボタンのメソッドが押されます。これらのそれぞれでIBActions
、4 つのプロパティすべてが に設定されているかどうかを確認できます。設定されている場合は、2 番目のビュー コントローラーを引数としてメソッドをYES
呼び出して、 2 番目のビュー コントローラーのビューを表示できます。presentViewController:animated:completion: