Кнопка в кнопке.

То что касается флеша, но не касается ВКонтакте API. Например проблемы при создании прыгающего мячика.

Кнопка в кнопке.

Сообщение prinum » 15 окт 2012, 16:06

Есть мувик, реагирующий на мышку (при наведении - всплывает окно, при потере курсора - окно убирается), в этом окне есть кнопка при наведении на которую нужно ее подсветить. Получается, что при наведении на кнопку окно теряет курсор и исчезает...

Чтобы окно не исчезало, делаю:

  1.  
  2. plashka.buttonMode = true;
  3. plashka.mouseChildren = false;
  4.  


Но тогда кнопка перестает работать (plashka.mouseChildren = false; - запрещает выбирать дочерние спрайты)... Получается замкнутый круг! Как же быть?
prinum

 
Автор темы
Сообщения: 19
Зарегистрирован: 24 июл 2012, 16:39
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.

Чтобы убрать блок с рекламой, зарегистрируйтесь на форуме или войдите.

Google
 



Re: Кнопка в кнопке.

Сообщение sanych_dv » 15 окт 2012, 23:19

  1.  
  2. package
  3. {
  4.     import flash.display.MovieClip;
  5.     import flash.display.Sprite;
  6.     import flash.events.Event;
  7.     import flash.events.MouseEvent;
  8.    
  9.     public class Main extends Sprite
  10.     {
  11.        
  12.         public function Main():void
  13.         {
  14.             if (stage)
  15.                 init();
  16.             else
  17.                 addEventListener(Event.ADDED_TO_STAGE, init);
  18.         }
  19.        
  20.         private function init(e:Event = null):void
  21.         {
  22.             removeEventListener(Event.ADDED_TO_STAGE, init);
  23.            
  24.             var btn0:MovieClip = new MovieClip;
  25.             btn0.graphics.beginFill(0xFF0000, 1);
  26.             btn0.graphics.drawCircle(0, 0, 200);
  27.             btn0.graphics.endFill();
  28.             btn0.x = stage.stageWidth / 2;
  29.             btn0.y = stage.stageHeight / 2;
  30.             addChild(btn0);
  31.            
  32.             var btn1:MovieClip = new MovieClip;
  33.             btn1.graphics.beginFill(0xFFFF00, 1);
  34.             btn1.graphics.drawCircle(0, 0, 100);
  35.             btn1.graphics.endFill();
  36.             btn0.addChild(btn1);
  37.            
  38.             btn0.buttonMode = true;
  39.             btn0.mouseChildren = true;
  40.            
  41.             btn0.addEventListener(MouseEvent.ROLL_OVER, mouseEvents);
  42.             btn0.addEventListener(MouseEvent.ROLL_OUT, mouseEvents);
  43.            
  44.             btn1.addEventListener(MouseEvent.MOUSE_OVER, mouseEvents);
  45.             btn1.addEventListener(MouseEvent.MOUSE_OUT, mouseEvents);
  46.        
  47.         }
  48.        
  49.         private function mouseEvents(e:MouseEvent):void
  50.         {
  51.             trace(e.type);
  52.            
  53.             switch (e.type)
  54.             {
  55.                 case "mouseOver":
  56.                     e.currentTarget.alpha = 0.5;
  57.                     break;
  58.                 case "mouseOut":
  59.                     e.currentTarget.alpha = 1;
  60.                     break;
  61.                 case "rollOver":
  62.                     e.currentTarget.alpha = 0.5;
  63.                     break;
  64.                 case "rollOut":
  65.                     e.currentTarget.alpha = 1;
  66.                     break;
  67.             }
  68.         }
  69.    
  70.     }
  71.  
  72. }
  73.  
sanych_dv
Разработчик
Разработчик
 
Сообщения: 550
Зарегистрирован: 29 апр 2011, 01:52
Благодарил (а): 1 раз.
Поблагодарили: 77 раз.

Re: Кнопка в кнопке.

Сообщение prinum » 16 окт 2012, 07:48

Огромное спасибо, именно то, что и было нужно! Уже попробовал - все получилось, проблема была в разделении событий отдельно на ROLL и MOUSE!
prinum

 
Автор темы
Сообщения: 19
Зарегистрирован: 24 июл 2012, 16:39
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.


Вернуться в Программирование на Flash



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron