Как я могу получить доступ или вызвать глобальную функцию внутри функции во внешней библиотеке?

Ну, у меня есть такой класс в качестве примера:

   --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

Я все еще немного сбит с толку, зачем дозировать эту работу? Так как существует множество способов создания классов и объектов. Если у вас есть лучшее решение, я бы хотел узнать еще раз Спасибо.

Другие вопросы по тегам