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

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

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

Регистрация: Jul 2015
Сообщений: 73
По умолчанию вопрос по статическим методам и слушателям событий

есть такая статическая функция в классе
Код AS1/AS2:
public static function addMovie()
		{
		Zona.addEventListener(MouseEvent.MOUSE_DOWN, downL);	
		}
обращение несуществующего свойства Zona, выдает такую ошибку, заметил что слушатели выдают ошибки если они в статических функциях, в чем тут дело объясните никак не разберусь

Старый 12.07.2015, 03:20
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 2  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Слушатель можно повесить лишь на экземпляр(!) наследника EventDispatcher. Значит на класс нельзя повесить слушатель никогда. Если таки очень надо вот так абстрагироваться, заводи синглтон (там есть пример реализации на AS3).
__________________
Поймай яблоко 2!

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

Регистрация: Jul 2015
Сообщений: 73
не понял, почему на простую функцию вешаешь слушатель и работает нормально , а на статической не хочет?

Старый 12.07.2015, 13:55
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 4  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,283
Возможно объект Zona еще не создан к моменту вызова статического метода.Собственно об этом и говорит RTE.
Да и почитайте про as3 naming conventions.Имена объектов принято писать с маленькой буквы, классов - с большой

Старый 12.07.2015, 13:59
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 5  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Видимо, тс пытается обратитсья к свойству экземпляра из статического метода, что сделать невозможно по понятным причинам.

Старый 12.07.2015, 14:57
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 6  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Цитата:
Сообщение от tattori Посмотреть сообщение
не понял, почему на простую функцию вешаешь слушатель и работает нормально
На функцию? Это еще как?!
__________________
Поймай яблоко 2!

Старый 12.07.2015, 15:04
tattori вне форума Посмотреть профиль Отправить личное сообщение для tattori Найти все сообщения от tattori
  № 7  
Ответить с цитированием
tattori

Регистрация: Jul 2015
Сообщений: 73
Цитата:
Возможно объект Zona еще не создан к моменту вызова статического метода.Собственно об этом и говорит RTE.
он создан
Цитата:
Да и почитайте про as3 naming conventions.Имена объектов принято писать с маленькой буквы, классов - с большой
я пробовал менять название

Старый 12.07.2015, 15:07
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 8  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Тю! Так Zona — это объект?!
Ок. А объект этот — он экземпляр какого класса? Если этот класс свой, то от чего он наследуется?
__________________
Поймай яблоко 2!

Старый 12.07.2015, 15:21
tattori вне форума Посмотреть профиль Отправить личное сообщение для tattori Найти все сообщения от tattori
  № 9  
Ответить с цитированием
tattori

Регистрация: Jul 2015
Сообщений: 73
Цитата:
Тю! Так Zona — это объект?!
Ок. А объект этот — он экземпляр какого класса? Если этот класс свой, то от чего он наследуется?
вот класс объекта
Код AS3:
package  {
 
	import flash.display.MovieClip;
	import flash.events.MouseEvent;
 
	public class Level extends MovieClip
        {
 
 
		public function Level() 
		{
 
		}// Конструктор
 
                private function downL(event:MouseEvent):void
		{
			gotoAndStop(2);
		}
 
                public static function addMovie()
		{
			Zona.addEventListener(MouseEvent.MOUSE_DOWN, downL);
		}
 
        }
}
внутри мувиклипа есть другой мувиклим с именем экземпляра Zona, и при нажатии Zona надо что бы был переход на следующий кадр, но так как на сцене много экземпляров Level то хотел вызвать один метод и что бы слушатели были у всех

Старый 12.07.2015, 15:23
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 10  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Я спрашивал про Zona — где оно определяется, где оно создается?
__________________
Поймай яблоко 2!

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

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

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


 


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


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