Показать сообщение отдельно
Старый 18.11.2015, 21:50
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 7  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Сообщение от WaldeMar1321 Посмотреть сообщение
метод swap находится в Main
Что он там делает? Подписка в этом случае должна происходить не в классе героя, а к классу Main.
Здесь Main шлет событие INDEX_CHANGED. Естественно герой никак не может его услышать.

Если предположить, что герой тоже валяется в Main, и называется hero (к примеру). То, чтобы он услышал это событие, нужно сделать так:
Код AS3:
public function swap(e:MouseEvent):void
{
	stage.swapChildrenAt(2, 3);//пока только два
	hero.dispatchEvent(new cEvents(cEvents.INDEX_CHANGE));
}
Но это так же бессмысленно, потому что можно просто вызывать у героя какой-то метод.

Либо, другой вариант. В классе героя должна быть ссылка на Main, и подписка слушателя должна быть прикручена к этой ссылке
как-то так
Код AS3:
main.addEventListener(cEvents.INDEX_CHANGE, changed);
Советую почитать в справке как работают события, и погулить тоже. Так же у Колина Мука довольно неплохо описано всё