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

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

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

Регистрация: Feb 2008
Сообщений: 39
По умолчанию Клипы в спрайтовый класс и класс в Спрайт

Здравствуйте, столкнулся с проблемой, которую не знаю как решить граммотно.
Создаю класс Unit и добавляю в нем еще два класса тело и шасси, которые расширяют класс MovieClip
Код AS3:
package src.module {
	import flash.display.*;
 
	public class Unit extends Sprite{		
 
		var body: CorpusModule = new CorpusModule;
		var chassis: Chassis = new Chassis;
 
		public var select:Boolean = false;
 
		public function Unit() {
			// constructor code
 
			this.addChild(body);
			this.addChild(chassis);
 
		}
 
	}
 
}
Далее добавляю класс юнит на игровой сетке
Код AS3:
			unit = new Unit;
			units.push(unit);
			grid.addChild(units[0]);
			unit.x = field[1][1].x;
			unit.y = field[1][1].y;
Добавляю слушатели
Код AS3:
			for (var l:Number =0; l < units.length; l++)
			{
				units[l].addEventListener(MouseEvent.MOUSE_OVER, select);
				units[l].addEventListener(MouseEvent.MOUSE_OUT, disSelect);
			}
 
		public function select(e:MouseEvent):Object {
			grid.addChild(MovieClip(e.target));
			updateUnits();
			if ( e.target.hasOwnProperty(select) ) {
			e.target.select = true
			};
			e.target.x -= parallax;
			e.target.y -= parallax;
			return e.target;
 
 
		}
 
		private function disSelect(e:MouseEvent):Object {
			if ( e.target.hasOwnProperty(select) ) {
			e.target.select = true
			};
			e.target.x += parallax;
			e.target.y += parallax;
			/*worldScan();*/
			return e.target;
		}
Так вот, в чем собственно проблема - получается что сами клипы body и chassis не привязаны к сетке, и конструкцией e.target я обращаюсь непосредственно к клипам, а не к спрайтовому классу unit и из-за этого визуально все клипы смещаются на позицию с координатами 0 при наведение на них. Помогите разобраться, как мне прописывать слушатель для этого класса юнит и действия непосредственно над ним, а не над вложенными в него объектами. (в данном примере при наведении на объект unit - он должен сместиться на значение parallax и вернуться обратно, когда мышка не над ним )

Старый 23.11.2012, 18:53
PsixokoT вне форума Посмотреть профиль Отправить личное сообщение для PsixokoT Найти все сообщения от PsixokoT
  № 2  
Ответить с цитированием
PsixokoT

Регистрация: May 2008
Сообщений: 63
currentTarget ?

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

Регистрация: Feb 2008
Сообщений: 39
Цитата:
Сообщение от PsixokoT Посмотреть сообщение
как все просто, спасибо!

П.С. все таки как хорошо, что есть такое место где можно задать вопрос и на него ответят - сам бы я еще фиг знает когда решил бы этот вопрос><

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

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

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


 


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


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