0

您好,我在一帧上有 4 个按钮,当我按随机顺序单击所有 4 个按钮时,我不知道如何转到另一帧。条件为一 - 所有 4 个按钮必须至少单击一次。

我的按钮:第 1 帧中的 Button1 Button2 Button3 Button4 - 点击时 - 转到第 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 个按钮至少被按下一次后立即显示另一个视图控制器的另一个视图。
我假设您已经有了第一个视图控制器及其视图,以及故事板中定义的 4 个按钮。然后,您可以将新的视图控制器从库中拖到情节提要中。您必须在应用程序中定义一个新的子类UIViewController,并将情节提要中新视图控制器的类设置为这个新子类。
接下来,您必须检查是否已按下所有按钮。因此,您可以@property bool buttonXpressed为每个按钮 X 定义一个,并将此属性设置YESIBAction按下此按钮的方法。在每一个中IBActions,您可以检查是否所有 4 个属性都设置为YES,如果是,您可以通过调用presentViewController:animated:completion:以第二个视图控制器作为参数的方法来呈现第二个视图控制器的视图。

于 2013-03-08T15:27:46.487 回答