Как я могу получить доступ или вызвать глобальную функцию внутри функции во внешней библиотеке?
Ну, у меня есть такой класс в качестве примера:
--An External Library --UI.lua
UI = {}
function UI: new()
local Group = display.newGroup;
local inventory_frames = display.newImage("inventorybox.png") ;
Group :insert( inventory_frames) ;
function inventory_framesDown()
local tr_down = transition.to(inventory_frames,{time = 150,alpha = 0, x=0 ,y =8})
end
return Group
end
return UI
Теперь из моего фактического scene.lua (используя раскадровку API) из Corona.
1.local ui = require "UI.lua" После этого в моей функции создания сцены ()(причина, по которой я не поместил ее в групповую сцену, потому что хочу, чтобы она исчезла вручную)
local UI2 = UI:new()
Затем в моей функции сцены выхода. Я хочу вызвать функцию inve ntory_framesDown() из пользовательского интерфейса:new().
function scene:exitScene(e)
invent = UI:new() inventory_framesDown() --this dose not work
storyboard.purgeScene("scene2");
storyboard.removeAll()
end
Итак, как я могу вызвать глобальную функцию внутри глобальной функции из внешней библиотеки? Заранее спасибо:)
1 ответ
В принципе;
--An External Library --UI.lua
UI = {}
function UI:new()
local Group = display.newGroup;
local inventory_frames = display.newImage("inventorybox.png") ;
Group :insert( inventory_frames) ;
function Group: inventory_framesDown() -- I rewrite the code like this.
local tr_down = transition.to(inventory_frames,{time = 150,alpha = 0, x=0 ,y =8})
end
return Group
end
return UI
затем в моем Scene.lua после запроса библиотеки. В функции Creat сцены () я пишу локальный UI2 = UI:new() так же, как и раньше, а затем:
function scene:exitScene(e)
UI2.inventory_framesDown() --This Works
storyboard.purgeScene("scene2");
storyboard.removeAll()
end
Я все еще немного сбит с толку, зачем дозировать эту работу? Так как существует множество способов создания классов и объектов. Если у вас есть лучшее решение, я бы хотел узнать еще раз Спасибо.