Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Получить правильный e.target после клика (http://www.flasher.ru/forum/showthread.php?t=206410)

PrincessRoma 02.02.2014 20:09

Получить правильный e.target после клика
 
Есть класс Process_Box_cl, который является по сути контейнером для двух textfield-ов и переменной Line, которая в себе хранит изображение самого бокса ( нарисовано ранее прямо во флеше и экспортировано для AS 3.0, с помощью класса Process_Box_line ).

по клику нужно получать текстовые значения текстфилдов, их параметры ширины, высоты, параметры ширины и высоты у Line.
Но проблема в том, что когда происходит клик, в event.target упорно возвращается только Process_Box_line, пробовал рисовать поверх него полупрозрачный прямоугольник, но Process_Box_line упорно рисуется поверх, где бы и как бы я его не добавлял.

участки кода задающие различные параметры текстфилдам опущены.

что хочется - хочется чтобы по клику на экземпляр Process_Box_cl на сцене, в таргет вернулся действительно этот класс, чтобы можно было обратиться к его переменным.

Код AS3:

package 
{
    import flash.display.Sprite;
    import flash.text.TextField;
 
    public class Process_Box_cl extends Sprite
    {
 
        public var Line: Process_Box_line = new Process_Box_line();
        public var Title:TextField = new TextField();
        public var No:TextField = new TextField();
 
                    public function Process_Box_cl()
                  {
                        addChild(Line);
                        addChild(Title);
                        addChild(No);
                        drawAlphaLayer();
                  }
 
                  function drawAlphaLayer()//вот полупрозрачный прямоугольник, которым все пытаюсь перекрыть
                  {
                  graphics.beginFill(0x000000,0.1);
                  graphics.drawRect(0,0,150,50);
                  graphics.endFill();
                  }
 
    }       
 
}

P.S. Заголовок может несколько не соответствовать сути, на чей-то взгляд, поскольку мне трудно сформировать его.

Добавлено через 1 минуту
P.P.S. Класс main опущен, там происходит всего лишь addChild(box); потом на box.addEventListener(MouseEvent.CLICK, mouseClickHandler); затем в mouseClickHandler идет trace(e.target);

caseyryan 02.02.2014 20:12

Код AS3:

public function Process_Box_cl()
                  {
                        mouseChildren = false;
                        addChild(Line);
                        addChild(Title);
                        addChild(No);
                        drawAlphaLayer();
                  }


PrincessRoma 02.02.2014 20:19

спасибо ) Работает даже без drawAlphaLayer(); теперь.
я правильно понимаю, что когда mouseChildren = false любой клик даже на child будет восприниматься как клик на parent?


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

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