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

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

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

блогер
Регистрация: Dec 2010
Сообщений: 237
Записей в блоге: 5
По умолчанию Не отрабатывает листенер мыши

Код AS3:
package {
	import flash.display.MovieClip;
	import flash.events.MouseEvent;
/**
	 * ...
	 * @author Me
	 */
	public class Main extends MovieClip {
 
		public function Main() {
			addEventListener(Event.ADDED_TO_STAGE, addedToStageListener);
		}
 
		private function addedToStageListener(e:Event):void {
			removeEventListener(Event.ADDED_TO_STAGE, addedToStageListener);
			graphics.beginFill(0x000000);
			graphics.drawCircle(300, 300, 20);
			graphics.endFill();
			addEventListener(MouseEvent.CLICK, mouseClickListener)
			trace (hasEventListener(MouseEvent.CLICK)); //True
		}
 
		private function mouseClickListener(e:MouseEvent):void {
			trace ('olololololol'); //Никогда не вызывается
		}
      }
}
Аналогично для маусап, маусмув и прочих. Что я делаю не так?
__________________
Дебаггер не предлагать

Старый 27.06.2011, 13:04
t4arty вне форума Посмотреть профиль Отправить личное сообщение для t4arty Найти все сообщения от t4arty
  № 2  
Ответить с цитированием
t4arty

Регистрация: May 2010
Адрес: пространство в положении
Сообщений: 219
что бы сработало Вам надо найти область которую занимает Ваш Main и нажать на нее = ), тогда заработает

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

Регистрация: Jul 2008
Сообщений: 912
вот так можно:

Код AS3:
package {
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	import flash.events.Event;
/**
	 * ...
	 * @author Me
	 */
	public class Main extends Sprite {
 
		public function Main() {
 
 
			addEventListener(Event.ADDED_TO_STAGE, addedToStageListener);
		}
 
		private function addedToStageListener(e:Event):void {
			removeEventListener(Event.ADDED_TO_STAGE, addedToStageListener);
 
			var circle:MovieClip = new MovieClip();
			circle.graphics.beginFill(0x000000);
			circle.graphics.drawCircle(300, 300, 20);
			circle.graphics.endFill();
			circle.addEventListener(MouseEvent.CLICK, mouseClickListener);
 
			stage.addChild(circle);
		}
 
		private function mouseClickListener(e:MouseEvent):void {
			trace ('olololololol'); //Никогда не вызывается
		}
    }
}

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

Регистрация: Mar 2009
Сообщений: 207
Не рисуйте в graphics Main'а, создайте Sprite, добавте его addChild'ом в Main и рисуйте в нем.

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

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Sintesis, spooner, да, со спрайтом клики обрабатываются. Но вот вопрос, отчего же не работает первый вариант с рисованием прямо в Main? Меня это, признаться удивило.

Старый 27.06.2011, 17:57
serogah вне форума Посмотреть профиль Отправить личное сообщение для serogah Найти все сообщения от serogah
  № 6  
Ответить с цитированием
serogah

Регистрация: Sep 2010
Сообщений: 16
Привет!
Цитата:
Sintesis, spooner, да, со спрайтом клики обрабатываются. Но вот вопрос, отчего же не работает первый вариант с рисованием прямо в Main? Меня это, признаться удивило.
Потому что класс Graphics наследуется только от Object - следственно он не реагирует на события "мыши".


Последний раз редактировалось iNils; 28.06.2011 в 12:11.
Старый 27.06.2011, 18:12
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 7  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Цитата:
Потому что класс Graphics наследуется только от Object - следственно он не реагирует на события "мыши".
Не в ту сторону мыслите. Main расширяется от наследника InteractiveObject, а значит клики должны срабатывать.
__________________
тут я

Старый 27.06.2011, 18:19
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 8  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
DocumentClass не слушает события мыши.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 27.06.2011 в 18:24.
Старый 28.06.2011, 02:15
bav вне форума Посмотреть профиль Отправить личное сообщение для bav Найти все сообщения от bav
  № 9  
Ответить с цитированием
bav
 
Аватар для bav

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Благодарствую.

Старый 28.06.2011, 03:02
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 10  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Развеяли непонятку, Дмитрий.
__________________
тут я

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

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

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


 


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


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