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

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

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

Регистрация: Jan 2013
Адрес: Москва, Сходня
Сообщений: 41
По умолчанию Разделение программы на классы

Привет всем,
Изучаю actionScript недолго и как мне кажется, он себя очень странно ведет. Что ни начну делать, всё ему не так. Хотел узнать почему.

Всё работает, если пишу только в главном классе. А я хочу разделить прогу на 2 класса - Main и Beatle(это у меня игрок).

1). К примеру, хочу сделать обычное перемещение с помощью стрелок. На мой взгляд логично, если всё это будет в классе Beatle. Задается скорость передвижения, добавляются слушатели событий и сами функции передвижения, а в Main просто создается объект класса Beatle.
В конструкторе класса Beatle добавляю слушатель клавиатуры:
Код AS3:
addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownEvent);
Так не работает, пробую еще так и так:
Цитата:
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownEvent);
Цитата:
this.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownEvent);
Цитата:
Beatle.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownEvent);
Никак не работает. Значит, слушатель событий клавиатуры из класса Beatle назначить неполучается. Ну, фиг с ним, решил в классе Main написать слушатели событий клавиатуры и вызывать метод класса Beatle для передвижения, типа Beatle.walkLeft();
Добавляю слушатель событий в класс Main, работает:
Код AS3:
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownEvent);
Добавляю функцию onKeyDownEvent() в класс Main, в которой вызываю метод beatle.walkLeft(); Да, при нажатии любой клавиши на клавиатуре объект должен двигаться влево:
Код AS3:
public function onKeyDownEvent():void
{
	beatle.walkLeft();
}
Но метод объекта beatle не вызывается из этой функции, хотя из конструктора класса Main он вызывается.

Даже на таких простых вещах у меня уже проблемы, AS3 просто не дает мне разделить код на классы такими способами, хотя на мой взгляд они вполне логичны и удобны:
1). Слушатели событий и функции слушателей в классе Beatle, а в классе Main только создается объект класса Beatle и добавляется на сцену.
2). В классе Main слушатели событий и функции слушателей, которые вызывают нужные методы объектов, типа beatle.walkLeft();

Как разделить на классы программу так, что бы это работало?

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

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

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


 


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


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