Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Вопрос по switch(){case ... } (http://www.flasher.ru/forum/showthread.php?t=161169)

ERrorMAKros 21.07.2011 14:20

Вопрос по switch(){case ... }
 
Друзья, подскажите пожалуйста, возможно ли в case проверять несколько параметров?
Интересует что то на подобии этого:
Код AS3:

var instance:Movieclip = new Movieclip();
instance.addEventListener(MouseEvent.ROLL_OVER, instanceMouseEventsHandlers);
instance.addEventListener(MouseEvent.ROLL_OUT, instanceMouseEventsHandlers);
instance.addEventListener(MouseEvent.CLICK, instanceMouseEventsHandlers);
 
private function instanceMouseEventsHandlers(e:MouseEvent):void {
    switch(e.type) {
      case MouseEvent.ROLL_OVER || MouseEvent.ROLL_OUT: {
      // можно как то вот так, есть способ?
      // code;
          break;
      }
      case MouseEvent.ROLL_OVER: {
      // code;
          break;
      }
    }
}


DaFive 21.07.2011 14:22

Код AS3:

case OVER:
case OUT:
case CLICK:
    мотор!
break;


silin 21.07.2011 14:44

такой еще выверт
Код AS3:

switch (true)
{
        case e.type==MouseEvent.ROLL_OVER || e.type==MouseEvent.ROLL_OUT:
        {
                // code;
                break;
        }
}

для этого конкретного случая он не смотрится ни разу, просто как вариант для хитрого switch

fish_r 21.07.2011 15:06

Извиняюсь, конечно, но зачем в switch "выверты"? Он сам по себе - выверт :)

Код AS3:

                         switch (e.type)
                        {
                                case  MouseEvent.ROLL_OVER:
 
                                case  MouseEvent.ROLL_OUT:
 
                                        // здесь код исполнится в обоих случаях
                                        break;
 
                                default:
                                        // здесь код для того, что не подходит не под один из них
 
                        }


silin 21.07.2011 15:21

ну да: выверты они такие выверты, что лучше бы без них
я и написал так
хотя вот например ситуацию с is тяжело без выверта разрулить ( else if не в счет, раз мы о switch)
Код AS3:

//var obj:* = new Sprite;
//var obj:* = new Bitmap;
var obj:* = new Matrix;
 
switch (true)
{
        case obj is Sprite:
                trace("Sprite  ");
                break
        case obj is Bitmap:
                trace("Bitmap  ");
                break;
        case obj is Matrix:
                trace( "Matrix  ");
                break;
}

Добавлено через 2 минуты
зы: негодный пример, все равно лучше без вывертов

ERrorMAKros 21.07.2011 16:14

Круто! Спасибо! То что нужно! ;)


Часовой пояс GMT +4, время: 21:12.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.