Показать сообщение отдельно
Старый 31.01.2011, 23:35
zelibiba84 вне форума Посмотреть профиль Отправить личное сообщение для zelibiba84 Найти все сообщения от zelibiba84
  № 1  
Ответить с цитированием
zelibiba84

Регистрация: Nov 2010
Сообщений: 24
По умолчанию Обработка мыши внутри объекта. ....или конструктор не работает

Когда прописываю обработку для клика мыши внутри класса кнопки - ноль эмоций.
Если прописываю в классе мувика, в который помещаю кнопку - всё Ок...
Хотелось бы чтоб и в 1м случае все было Ок. Что не так?

есть подозрение, что всё, что в конструкторе кнопки не фурычит, ибо задаваемые в конструкторе координаты( х=400 и y=100) остаются так же без внимания.

(все остальные файлы в архиве приаттачил)

класс кнопки:
Код AS3:
package  {
 
	import flash.display.SimpleButton;
	import flash.events.MouseEvent;
	import Main;
 
	public class ButtonPlay extends SimpleButton {
 
 
		public function ButtonPlay() {
			// constructor code
			x = 400
			y = 100	
 
			addEventListener(MouseEvent.CLICK, OnClick);
		}
 
		public function OnClick(event:MouseEvent) {
 
			trace('ButtonPlay Down')
			Main.play_the_game();
 
		}
	}
 
}


класс мувика с кнопкой:
Код AS3:
package screens{
 
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import flash.display.SimpleButton;
	import flash.events.KeyboardEvent;
	import flash.events.MouseEvent;
	import gameInterface.*
 
 
	/*****************************/
	public class SplashScreen extends MovieClip {
 
		//Объявление типа перемнной main_class of the_game (основной класс).
		public var main_class:Main;
		public var play_butt = new ButtonPlay();
		public var how_butt =  new ButtonInfo();
 
		//Основная функция, принимающая в качестве параметра passed_class типа the_game 
		//передается как параметр, получаемый в строке 12 в файле the_game.as.
		public function SplashScreen(passed_class:Main) {
 
			x = 100
			y = 100
 
 
			// Запоминем класс от которого пришли
			main_class = passed_class;
			// Добавляем слушателей кнопке для проверки
			// когда игрок нажимает кнопку “play” или “how to play”.
			addChild(play_butt); play_butt.x = 300;
                                  addChild(how_butt);
 
			//play_butt.addEventListener(MouseEvent.CLICK, on_play_button_clicked);
			//how_butt.addEventListener(MouseEvent.CLICK, on_how_butt_clicked);
 
		}
		//
		// Функция будет выполнена, когда пользователь нажмет кнопку play_button
		public function on_play_button_clicked(event:MouseEvent) {
			// Обращаемся к функции play_the_game в основном классе. 
			// Я знаю какой основной класс благодаря переменной main_class.
 
			trace(event.currentTarget)
			main_class.play_the_game();
		}
		//
		public function on_how_butt_clicked(event:MouseEvent) {
			trace('on_how_butt_clicked')
			main_class.show_how_to_play();
		}
		//
 
	}
}