![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Nov 2010
Сообщений: 24
|
Когда прописываю обработку для клика мыши внутри класса кнопки - ноль эмоций.
Если прописываю в классе мувика, в который помещаю кнопку - всё Ок... Хотелось бы чтоб и в 1м случае все было Ок. Что не так? есть подозрение, что всё, что в конструкторе кнопки не фурычит, ибо задаваемые в конструкторе координаты( х=400 и y=100) остаются так же без внимания. (все остальные файлы в архиве приаттачил) класс кнопки: 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(); } } } класс мувика с кнопкой: 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(); } // } } |
|
|||||
|
Регистрация: Nov 2010
Сообщений: 24
|
эм... ток вот addEventListener для MouseEvent.CLICK добавил.
этого не достаточно? |
|
|||||
|
Просто ваш исходник, из такой же темы где то ниже по форуму я не смог открыть, потому что он для CS 5, что бы посмотреть на кнопку. Но теперь я понял, что это обычная кнопка. Решений пока не знаю.
|
|
|||||
|
Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
|
У меня класс на основе SimpleButton имеет сеттер коллбека, и все работает отлично. Что-то примерно так:
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, время: 21:10. |
|
|
« Предыдущая тема | Следующая тема » |
|
|