2014-05-14 5 views
0

Возьмите объект из функции, которая не была объявлена?Возьмите объект из функции, которая не была объявлена?

Ну, в принципе это все, что нужно использовать

character:removeEventListener ("touch", movePerson) 

только что movePerson произойдет только после того, как ... И я не могу оставить его на потом, должно быть, прежде чем ... как-нибудь?

Запрашивается более подробная информация, но это почти вся информация '-' Это просто: мне нужно нарисовать эту линию внутри функции, которая есть перед функцией movePerson ... Я думаю, что это более запутанно, а? : S

+0

Непонятно, что вы здесь задаете. вам нужно будет дать более полный пример, предпочтительно полный самостоятельный пример, показывающий вашу проблему. вы также должны указать, что вы ожидаете или хотите, и сравнить это с тем, что на самом деле происходит. Если вы предоставите эту информацию, вы, вероятно, получите полезные ответы - если вы не зададите этот вопрос, вероятно, будете закрыты как неясные. –

ответ

1

Вы можете определить его на вершине, и назначить функцию к нему позже, например, так:

local character = display.newRect(200,200,200,200) 
local movePerson -- This will be a reference to the function, so functions below can "see" it. 

local function addListener() 
    character:addEventListener ("touch", movePerson) 
end 

local function removeListener() 
    character:removeEventListener ("touch", movePerson) 
end 

movePerson = function(event) -- Right here you declare it to the variable on top 
    print(tostring(event.phase)) 
end 

addListener() 
removeListener() 

Обратите внимание, что вы должны удалить его после того, как было объявлено, как в примере, и я не думайте, что это хорошая практика, если это абсолютно необходимо.

+0

Таким образом, вы не можете, потому что он должен быть внутри функции, которая должна быть запущена до появления removeMovePerson ...: C не имеет другого способа? – user3602803

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