0

こんにちは、1 つのフレームに 4 つのボタンがあり、4 つのボタンすべてをランダムな順序でクリックすると、別のフレームに移動する方法がわかりません。条件は 1 つです。4 つのボタンすべてを少なくとも 1 回クリックする必要があります。

私のボタン:フレーム1のButton1 Button2 Button3 Button4 - alがクリックされたとき - フレーム2に移動

4

2 に答える 2

1

これを行うためのかなり一般的な方法を次に示します。

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{
  //...
}
于 2013-03-08T19:52:23.233 に答える
0

あなたの問題を正しく理解しているかどうかわかりません。ビューコントローラーのビューを「フレーム化」することを意味していて、最初のビューの4つのボタンすべてが少なくとも1回押されたらすぐに、別のビューコントローラーの別のビューを表示したいと思います。
ストーリーボードで定義された 4 つのボタンと共に、最初のビュー コントローラーとそのビューが既にあると仮定します。その後、新しいビュー コントローラーをライブラリからストーリーボードにドラッグできます。UIViewControllerアプリでの新しいサブクラスを定義し、ストーリーボードで新しいビュー コントローラーのクラスをこの新しいサブクラスに設定する必要がありました。
次に、すべてのボタンが押されたかどうかを確認する必要がありました。@property bool buttonXpressedしたがって、ボタン X ごとに1 つ定義しYES、このプロパティをIBActionこのボタンのメソッドが押されます。これらのそれぞれでIBActions、4 つのプロパティすべてが に設定されているかどうかを確認できます。設定されている場合は、2 番目のビュー コントローラーを引数としてメソッドをYES呼び出して、 2 番目のビュー コントローラーのビューを表示できます。presentViewController:animated:completion:

于 2013-03-08T15:27:46.487 に答える