Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Не срабатывает событие контейнера (http://www.flasher.ru/forum/showthread.php?t=153237)

DZHETIGAPA 30.03.2011 19:12

Не срабатывает событие контейнера
 
Располагаю 3 спрайт-рисунка на сцене, при том они занимает все ее пространство.

Пытаюсь сделать следующее:
Код AS3:

this.doubleClickEnabled = true;
this.addEventListener(MouseEvent.DOUBLE_CLICK, onDouble);

или так:
Код AS3:

stage.doubleClickEnabled = true;
stage.addEventListener(MouseEvent.DOUBLE_CLICK, onDouble);

И события не трейсятся. Видимо, я флэш уже совсем не понимаю. Ведь по сути stage и this - это контейнеры для этих спрайтов и они должны срабатывать. В чем дело? Объясните пожалуйста. Или тут надо учитывать фазы всплытия и подобное?

Если вешаю эти же события на отдельные спрайты, то работают.

fish_r 30.03.2011 19:30

Код AS3:

this.mouseChildren = false;


DZHETIGAPA 30.03.2011 19:34

Во-первых, это не помогло. А во вторых, что важнее, дети тоже имеют свои мышиные события.

in4core 30.03.2011 19:42

Код AS3:

package 
{
 
        import flash.events.Event;
        import flash.events.MouseEvent;
 
 
        /**
        * ...
        * @author in4core
        */

        public class Main extends Sprite
        {
 
                public function Main():void
                {
                        if (stage) init();
                        else addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                private function init(e:Event = null):void
                {
                        removeEventListener ( Event.ADDED_TO_STAGE , init)
 
                        stage.doubleClickEnabled = true;
                        stage.addEventListener(MouseEvent.DOUBLE_CLICK , click)
 
                }
 
                private function click(e:MouseEvent):void
                {
                        trace('oj');
                }
 
 
        }
 
}

Все работает, тестирую в дебаг плеере в FD

DZHETIGAPA 30.03.2011 19:45

так я на сцену добавил спрайты-рисунки, которые полностью заполняют ВСЮ сцену. На пустой сцене и у меня работает:)

in4core 30.03.2011 19:48

покажите полный ваш код. мы хоть поглядим чем там происходит. А вообще попробуй после всех добавлений написать
Код AS3:

stage.focus = stage;

))

Добавлено через 1 минуту
а лучше исходник пришлите. больше шансов на помощь

DZHETIGAPA 30.03.2011 19:58

Вложений: 1
Вот, пожалуйста!

kseniya 30.03.2011 20:54

надо повесить на все спрайты
Код AS3:

                        imSpr1.doubleClickEnabled = true;
                        imSpr2.doubleClickEnabled = true;
                        imSpr3.doubleClickEnabled = true;

Тогда так:
Код AS3:

this.doubleClickEnabled = true;
this.addEventListener(MouseEvent.DOUBLE_CLICK, onDouble);

будет работать

DZHETIGAPA 30.03.2011 21:07

Во система... спасибо...

in4core 30.03.2011 21:16

система нипель))


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

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