2013-05-27 4 views
1

В настоящее время я с ума сошел с ума, чтобы получить ответ на довольно простой (надеюсь) способ доступа к двум или более функциям одним нажатием кнопки EventListener.Обработка двух функций одним событием. Corona SDK

Найдено это

local touchHandler = function(event) 
    if event.phase == "began" then 
     local t = event.target 
     print("param1=" .. t.param1 .. ", param2=" .. t.param2 .. ", param3=" .. t.param3) 
    end 
    end 

    local loadServerButton = display.newRect(0, 0, 50, 50) 
    loadServerButton:setFillColor(0, 0, 0) 
    loadServerButton.x= _W/2  
    loadServerButton.y= _H/1.35 
    loadServerButton.param1 = timestampWrite 
    loadServerButton.param2 = downloadServerAPI 
    loadServerButton.param3 = downloadUserAPI 
    loadServerButton:addEventListener("touch", touchHandler) 

Но есть проблемы управления ею работать, получая «ошибка во время выполнения попытки concetrate поле„Param3“(функция стоимости)» и так далее.

Что я делаю неправильно?

+0

Ваши параметры - это функции, а не строки. (Почему вы хотите отображать функции?) Невозможно объединить функции. Преобразуйте их в строки до конкатенации: '" param1 = ".. tostring (t.param1) ..' –

+0

Ну .. я не знаю ... Какой еще способ я могу назвать все 3 функции одним eventlistener ? – Eyrik

+0

Для вызова функции необходимо добавить скобки для названия функции: 'FunctionName()' –

ответ

0

Я принимаю timestampWrite функции определяются следующим образом:

local timestampWrite = function() 
    --some code here 
end 

Это код:

local touchHandler = function(event) 
    if event.phase == "began" then 
     local t = event.target 
     print("param1=" .. t.param1() .. ", param2=" .. t.param2() .. ", param3=" .. t.param3()) 
    end 
    end 

    local loadServerButton = display.newRect(0, 0, 50, 50) 
    loadServerButton:setFillColor(0, 0, 0) 
    loadServerButton.x= _W/2  
    loadServerButton.y= _H/1.35 
    loadServerButton.param1 = timestampWrite 
    loadServerButton.param2 = downloadServerAPI 
    loadServerButton.param3 = downloadUserAPI 
    loadServerButton:addEventListener("touch", touchHandler) 

Подробнее:

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