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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 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();
		}
		//
 
	}
}

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
А в конструкторе класса кнопки, вы задаёте все состояния - up, over, down, hit?

Старый 01.02.2011, 22:47
zelibiba84 вне форума Посмотреть профиль Отправить личное сообщение для zelibiba84 Найти все сообщения от zelibiba84
  № 3  
Ответить с цитированием
zelibiba84

Регистрация: Nov 2010
Сообщений: 24
эм... ток вот addEventListener для MouseEvent.CLICK добавил.
этого не достаточно?

Старый 02.02.2011, 03:08
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 4  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Просто ваш исходник, из такой же темы где то ниже по форуму я не смог открыть, потому что он для CS 5, что бы посмотреть на кнопку. Но теперь я понял, что это обычная кнопка. Решений пока не знаю.

Старый 02.02.2011, 04:37
Bgg вне форума Посмотреть профиль Отправить личное сообщение для Bgg Найти все сообщения от Bgg
  № 5  
Ответить с цитированием
Bgg
 
Аватар для Bgg

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
У меня класс на основе SimpleButton имеет сеттер коллбека, и все работает отлично. Что-то примерно так:
Код AS3:
package  {
 
	import flash.display.SimpleButton;
	import flash.events.MouseEvent;
	import Main;
 
	public class ButtonPlay extends SimpleButton {
 
		private var _callBack:Function; 
 
		public function ButtonPlay() {
			// constructor code
			x = 400
			y = 100	
 
			addEventListener(MouseEvent.CLICK, OnClick);
		}
 
		public function OnClick(event:MouseEvent):void {
 
			trace('ButtonPlay Down')
			_callBack();
 
		}
 
		public function set callBack(_callBack:Function):void {
 
			this._callBack = _callBack;
 
		}
	}
 
}

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

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

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


 


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


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