2012-02-22 3 views
1

Я новичок в короне SDK. У меня есть 2 сцены A & B.Использование раскадровки, кажется, отключает события касания?

В сцене A У меня есть кнопка с событием OnRelease. Эта кнопка создана и добавлена ​​в группу в событии Создать событие. Нажатие кнопки приводит меня к сцене B (раскадровка.gotoScene ("B")).

В сцене B у меня есть событие касания на коробке (изображение ящика). Прикосновение слушателя добавляется в сцену Начальное событие и удаляется в сцене Выход из события. Нажатие на ящик возвращает меня в A (раскадровка.gotoScene («A»)).

Итак, вот настоящая досаждающая проблема: После возвращения в A все события в этой сцене теперь отключены. Т.е. я больше не могу больше нажимать на кнопку (без события).

Будет предоставлен фрагмент кода, если мне не хватает информации выше. Спасибо.

* Обновление *

После взятия о разрыве от этого, я вернулся сегодня и начал отладку этого снова. Я нашел проблему довольно быстро. Проблема имела какое-то отношение к моему тронутому обработчику событий (что вызывает переход от сцены B к A).

фрагмент ниже, вызвавший вопрос:

function testTouched(event) 

-- process cue-touched event... 
--local t = event.target -- commenting this was the fix. 
local phase = event.phase 

if "began" == phase then 

     print("  -> back to menu") 
     --display.getCurrentStage():setFocus(t) -- commenting this was the fix. 
     --t.isFocus = true -- commenting this was the fix. 
     storyboard.gotoScene("menu", "flipFadeOutIn", 500) 

end 

-- Stop further propagation of touch event 
return true 
+0

yep, вы должны предоставить фрагмент кода – cctan

ответ

0

Из того, что я вижу here,

enterScene

Отправляется, когда storyboard.gotoScene() вызывается сразу после переход завершено. Поэтому, если вы указали эффект перехода, это событие отправляется, как только эффект заканчивается. Добавление слушателей или логика, зависящая от приложения/игры, должна быть помещена в функцию прослушивания для этого события.

exitScene

Когда storyboard.gotoScene() вызывается, событие «exitScene» будет отправлен в показанной текущей сцены, прежде чем происходит переход. Обязанности по очистке, такие как удаление прослушивателей событий, таймеры остановки, и т. Д., Должны быть помещены в функцию слушателя для этого события.

слушателей Добавить событие в enterScene() событие, а не createScene() и удалить их в exitScene()?

Редактировать: Я думаю, вам нужно будет display.getCurrentStage():setFocus(nil) в exitScene().

Смежные вопросы