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

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

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

Регистрация: Feb 2010
Сообщений: 811
Отправить сообщение для Universe с помощью ICQ Отправить сообщение для Universe с помощью Skype™
По умолчанию Target и currentTarget - различия?

Хотел узнать, чем отличаются эти 2 свойства!

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

Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
для этого есть хелп.
Цитата:

currentTarget:Object [только для чтения]
Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. Например, если пользователь нажимает кнопку "ОК", текущей целью может быть узел, содержащий эту кнопку, или один из его предшественников, для которого зарегистрирован прослушиватель данного события.

target:Object [только для чтения]
Целевой объект события. Это свойство содержит целевой узел. Например, если пользователь нажимает кнопку "ОК", целевым является узел списка отображения, содержащий эту кнопку.

Старый 25.04.2010, 21:34
Universe вне форума Посмотреть профиль Отправить личное сообщение для Universe Найти все сообщения от Universe
  № 3  
Ответить с цитированием
Universe
 
Аватар для Universe

Регистрация: Feb 2010
Сообщений: 811
Отправить сообщение для Universe с помощью ICQ Отправить сообщение для Universe с помощью Skype™
что значит один из его предшественников?

Старый 25.04.2010, 21:43
PHILOSOFF вне форума Посмотреть профиль Отправить личное сообщение для PHILOSOFF Найти все сообщения от PHILOSOFF
  № 4  
Ответить с цитированием
PHILOSOFF

Регистрация: Apr 2010
Сообщений: 34
ну предшественник... он же родитель.

В общем если на пальцах объяснять... Допустим у тебя есть MovieClip содержащий на нем объект textfield. Ты вешаешь слушатель на текстфилд.
currentTarget покажет MovieClip
target - TextField

Вроде так. Хотя могу ошибаться. Я еще сам нуб.


Последний раз редактировалось PHILOSOFF; 25.04.2010 в 21:45.
Старый 25.04.2010, 21:43
mickfallout вне форума Посмотреть профиль Отправить личное сообщение для mickfallout Найти все сообщения от mickfallout
  № 5  
Ответить с цитированием
mickfallout
 
Аватар для mickfallout

Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
parent
или parent.parent
и т.д.)

Добавлено через 11 минут
Код AS3:
	public class Main extends Sprite 
	{
		private var textField:TextField = new TextField();
		private var mc1:MovieClip = new MovieClip();
		private var mc2:MovieClip = new MovieClip();
		private var mc3:MovieClip = new MovieClip();
		public function Main():void 
		{
			super();
			addChild(new MovieClip());
			addChild(mc1);
			mc1.addChild(mc2);
			mc2.addChild(mc3);
			mc3.addChild(textField);
			textField.text = "CLICK HERE!!!";
			mc1.addEventListener(MouseEvent.CLICK, clickHandler);
			mc2.addEventListener(MouseEvent.CLICK, clickHandler);
			mc3.addEventListener(MouseEvent.CLICK, clickHandler);
			textField.addEventListener(MouseEvent.CLICK, clickHandler);
 
		}
 
		private function clickHandler(event:MouseEvent):void
		{
			trace("event.target = " + event.target+", event.currentTarget = " + event.currentTarget);
 
		}
	}
выводит
Цитата:
event.target = [object TextField], event.currentTarget = [object TextField]
event.target = [object TextField], event.currentTarget = [object MovieClip]
event.target = [object TextField], event.currentTarget = [object MovieClip]
event.target = [object TextField], event.currentTarget = [object MovieClip]

Старый 25.04.2010, 21:58
Universe вне форума Посмотреть профиль Отправить личное сообщение для Universe Найти все сообщения от Universe
  № 6  
Ответить с цитированием
Universe
 
Аватар для Universe

Регистрация: Feb 2010
Сообщений: 811
Отправить сообщение для Universe с помощью ICQ Отправить сообщение для Universe с помощью Skype™
Не знаю...создаю мувик, в него помещаю кнопку, вешаю на кнопку лисенер...трейсю, различий не наблюдается! И там и там - Object Simple Button!

Старый 25.04.2010, 22:06
mickfallout вне форума Посмотреть профиль Отправить личное сообщение для mickfallout Найти все сообщения от mickfallout
  № 7  
Ответить с цитированием
mickfallout
 
Аватар для mickfallout

Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
на мувик тоже повесьте листнер. советую прочитать книгу основы AS3 Колина Мука, если Вы не понимаете как происходит диспетчеризация событий.

Добавлено через 1 минуту
P.S. Выкладывайте неработающий код. Причин ошибок может быть куча.

Старый 25.04.2010, 22:48
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 8  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
мдя ... и вот пришёл лесник.

target - тот, кто распространил событие.
currentTarget - тот, у кого Вы подписались на это событие.

у одного и того же листенера currentTarget всегда один и тот же. сколько бы событий туда не попало он будет всегда равен тому объекту, у которого Вы подписались.

target меняется в зависимости от того, кто производит диспатч.

для полноты картину советую ознакомится со всплытием событий.
Код AS3:
function handler_added(event:Event):void {
trace( event.currentTarget, event.target );
}
var mc:MovieClip = new MovieClip();
mc.addEventListener( Event.ADDED, handler_added );
mc.addChild( new Sprite() );
mc.addChild( new Sprite() );

Старый 25.04.2010, 23:46
mickfallout вне форума Посмотреть профиль Отправить личное сообщение для mickfallout Найти все сообщения от mickfallout
  № 9  
Ответить с цитированием
mickfallout
 
Аватар для mickfallout

Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
Цитата:
Сообщение от BlooDHounD Посмотреть сообщение
у одного и того же листенера currentTarget всегда один и тот же. сколько бы событий туда не попало он будет всегда равен тому объекту, у которого Вы подписались.

target меняется в зависимости от того, кто производит диспатч.
Если под листнером Вы имеете в виду метод-обработчик события(clickHandler в моём примере) - то currentTarget зависит от того, какой EventDispatcher(или его потомок) подписан на это событие. Если всего один - то только этот один и будет. Если несколько - то сначала тот в котором событие произошло, потом его parent, потом parent parent'a, и т.д. вплоть до самого верха(обычно stage). Естественно вся эта цепочка должна быть подписана этот листнер(если не подписана - то естественно и листнер не вызовется, и currentTarget'ом этот не подписаный элемент не будет).
target для одного конкретного события(например клика по кнопке) во всей этой цепочке будет оставаться одинаковым(кнопкой). target будет менятся при разных событиях, например при кликах по разным вложенным кнопкам, мувикам...
Я правильно понимаю?

Старый 26.04.2010, 00:04
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 10  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
Цитата:
Сообщение от mickfallout Посмотреть сообщение
Если под листнером Вы имеете в виду метод-обработчик события(clickHandler в моём примере) - то currentTarget зависит от того, какой EventDispatcher(или его потомок) подписан на это событие.
советую перечитать и вдуматься в то, что Вы пишете. тут ваще бред написан.

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

листенер - это метод. // true
метод - это листенер. // false

и советую ещё раз вдуматься и перечитать:
Цитата:
Сообщение от BlooDHounD Посмотреть сообщение
target - тот, кто распространил событие.
currentTarget - тот, у кого Вы подписались на это событие.
что Вы мне пытаетесь описать своими словами, я не понимаю. проще дать определение, чем дал его я, у Вас вряд ли получится. а усложнять не вижу смысла.

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

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

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


 


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


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