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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 16.01.2011, 15:21
DZHETIGAPA вне форума Посмотреть профиль Отправить личное сообщение для DZHETIGAPA Найти все сообщения от DZHETIGAPA
  № 11  
Ответить с цитированием
DZHETIGAPA
[+3 18.04.11]

Регистрация: Dec 2010
Сообщений: 342
Благодарю всех за ответы и комменты. Начало доходить. Будут еще вопросы - буду сюда обращаться.

У меня есть вопрос:где можно найти открытый код всех классов AS3?

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
DZHETIGAPA, одна тема - один вопрос. Относитесь к Теме не как к посиделкам за чаем, а как к разделу в Справочнике. Удачи.
__________________
Reality.getBounds(this);

Старый 19.01.2011, 23:07
DZHETIGAPA вне форума Посмотреть профиль Отправить личное сообщение для DZHETIGAPA Найти все сообщения от DZHETIGAPA
  № 13  
Ответить с цитированием
DZHETIGAPA
[+3 18.04.11]

Регистрация: Dec 2010
Сообщений: 342
Вот в конкретном примере возникли проблемы с событием.

Есть два класса. В первом классе Menu3D располагается скроллер, менюшки, контент. А второй класс ScrollerClass и есть СКРОЛЛЕР. Мне нужно, чтобы при нажатии на контент(в классе Menu3D) в классе ScrollClass вызвалось это событие. Вот мои действия.
Код AS3:
//класс Menu3D
 
public static const SCROLL:String = "scroll";
 
//другой код
 
private function clickContent(e:MouseEvent):void
		{
			timeline.reverse();
                        dispatchEvent(new Event(Menu3D.SCROLL));
 
		}
Код AS3:
//Класс ScrollerClass
private function onAddedToStage(e:Event):void
		{
			//какой-то код
 
		    var menu:Menu3D = new Menu3D();
		    menu.addEventListener(Menu3D.SCROLL, onScroll);
 
		}		
 
		private function onScroll(e:Event):void 
		{
			trace("STAS")
		}
Почему-то событие не работает. Где-то моя ошибка. Укажите пожалуйста, где тут ошибка. Просто со своими событиями опыт у меня малый.

Старый 19.01.2011, 23:35
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 14  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
clickContent - сюда трейс вставь и погляди, а то судя по коду должно работать.

Возможно событие клика не происходит, тогда уж надо смотреть как подписался на клик.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 19.01.2011, 23:43
DZHETIGAPA вне форума Посмотреть профиль Отправить личное сообщение для DZHETIGAPA Найти все сообщения от DZHETIGAPA
  № 15  
Ответить с цитированием
DZHETIGAPA
[+3 18.04.11]

Регистрация: Dec 2010
Сообщений: 342
Событие клика работает как надо. Еще один нюанс, про который не сказал. ScrollClass изначально помещен в класс-библиотеку Lib. Там ему задается статическая публичная переменная. Через эту переменную я и переношу скролл в класс Menu3D.
Код AS3:
//класс Lib
public static function scrollBar(n:int):void
		{
 
			scroll = new FullScreenScrollBar(massivCon[n], massivContent[n], 0x000fff, 0xff4400, 0xffffff, 15, 15, 4, true);
 
		}
 
		public static function destroyScroll():void
		{
			scroll = null;
	        }
Код AS3:
//Где-то в классе Menu3D
Lib.scrollBar(n);
Может из-за того, что я использую статическую переменную и не происходит вызова события?

Добавлено через 6 минут
Заменил статические переменные просто публичными - ничего не изменилось. Событие клика работает, но мое событие нет.

Старый 20.01.2011, 00:34
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 16  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
А мне вот странно, почему не придрались к этой строке:
Код AS3:
public function EventChangePos(type:String,x:Number,y:Number)
Ни бабблов, ни канселябл.

@Wolsh:
Цитата:
и, в частности, чем отличается метод clone в Вашем событии от исходного, что его пришлось оверрайдить.
Стандартный шаблон из FD.

Цитата:
Не логичнее было бы создать класс ВертолётИвэнт, а в нем уже разные ТИПЫ этого события - ап, даун, дестрой и т.п.? Даже в этом ключе в нем нет особой необходимости - можно создать класс-список констант типа HELICOPTER_UP, HELICOPTER_DOWN, HELICOPTER_DESTROYED и диспатчить обычные экземпляры Event с нужным Типом из этого списка. Нет смысла множить сущности.
Я скажу что не логичнее. Вертолёт он парень такой... сегодня ничего не шлёт, а завтра прицепляет к себе какой-нибудь параметр. И когда в коде получается такая каша, что половина обработчиков с Event, половина с HelicopterEvent — хочется плюнуть и переписать всё под единый стиль. Под HelicopterEvent.
Поэтому я ратую "за" при создании подобных эвентов. Даже те, которые в данный момент ничего не переносят.


Но конкретно в этом случае я вообще ратую за использование Event со стандартными константами Event. Абстракция, друзья мои. Типа
Код AS3:
super.dispatchEvent(new Event(Event.COMPLETE));

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
Не логичнее было бы создать класс ВертолётИвэнт...
Цитата:
Я скажу что не логичнее... ...хочется плюнуть и переписать всё под единый стиль. Под HelicopterEvent.
Тигр, иногда ты просто ставишь меня в тупик...
Цитата:
Поэтому я ратую "за" при создании подобных эвентов.
Ага. MouseClickEvent, MouseRollOverEvent, MouseRollOutEvent, MouseMouseMoveEvent, MouseMouseDownEvent... не, я не участвую в этом празднике.

Добавлено через 10 часов 42 минуты
Сам язык подсказывает, что "логично" а что нет.
MouseEventRollOut.ROLL_OUT выглядит совершенно нелогично.
Любое событие с единственным типом содержит в себе какое-то несовершенство. Хотя конечно возможны исключения.
Язык подсказывает - есть объект-источник событий. Есть событие, источником которого является объект. Иногда объект генерит разные типы событий. Но Лётчик генерит СобытиеЛётчика, а не СобытиеОфициантки. Любое событие "от лётчика" - это СобытиеЛётчика. Оно может быть разных типов - СобытиеЛётчика.Я_УСНУЛ, СобытиеЛётчика.Я_НАЖРАЛСЯ. Но это событие - Лётчика, вы можете передавать в нем показания приборов или температуру тела на момент события. Официантка тоже может уснуть, но в ее событии, подозреваю, будут совсем другие параметры.
Подход, о котором вы говорите - создавать КЛАСС на каждый ТИП события, т.е. СобытиеЛетчикНажрался.ЛЁТЧИК_НАЖРАЛСЯ, СобытиеЛётчикУснул.ЛЁТЧИК_УСНУЛ.
По-моему, эти "синтаксисы" говорят сами за себя.
Нет такого объекта "летчик нажрался", который является источником события "ЛЁТЧИК_НАЖРАЛСЯ".
Это УЖЕ и есть событие. Событие, источником которого является Летчик.
__________________
Reality.getBounds(this);

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

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

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


 


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


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