Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.02.2014, 20:09
PrincessRoma вне форума Посмотреть профиль Отправить личное сообщение для PrincessRoma Найти все сообщения от PrincessRoma
  № 1  
Ответить с цитированием
PrincessRoma

Регистрация: Jan 2014
Сообщений: 57
По умолчанию Получить правильный 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);

Старый 02.02.2014, 20:12
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Код AS3:
public function Process_Box_cl()
		  { 
                        mouseChildren = false;
			addChild(Line);
			addChild(Title);
			addChild(No);
			drawAlphaLayer();
		  }

Старый 02.02.2014, 20:19
PrincessRoma вне форума Посмотреть профиль Отправить личное сообщение для PrincessRoma Найти все сообщения от PrincessRoma
  № 3  
Ответить с цитированием
PrincessRoma

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

Создать новую тему Ответ Часовой пояс GMT +4, время: 14:34.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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