• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

lua中的继承

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

做为一个java出身的程序媛,长时间做Lua,重复一些工作后,特别想用继承。其实很简单。因为我有一大部分的场景,背景长的都一样,所以打算做一个父类。

需要注意的是,如果子类有和父类的同名函数,就会被覆盖,除非手动的调用.super.方法。

关键的代码就两个地方,都在子类中。

1 创建场景时:

local SceneBase = import("app.scenes.SceneBase")
local ActivityScene = class("ActivityScene", SceneBase)

2 子类的构造函数中,需调用父类

ActivityScene.super.ctor(self) -- 这是关键

超级简单,为什么以前没人用呢,用了多省事啊,便于维护,省了很多人力呢。下面是两个文件的完整代码。

父类:

local commImgPath = "#images/common/ui/"

local SceneBase = class("SceneBase", function()
    return display.newScene("SceneBase")
end)

function SceneBase:ctor()
    print("SceneBase:ctor")
    self:addSprite()
end

function SceneBase:addSprite()
    print("SceneBase:addSprite")
    self.menuBgHeight = ZySize.scale * 98
    self.menuBgWidth = display.width - ZySize.scalew * 85
    --背景
    cc.ui.UIImage.new(commImgPath.."beijing.jpg")
    :setLayoutSize(display.width + ZySize.scalew*20, display.height + ZySize.scale*20)
    :align(display.CENTER, display.cx, display.cy)
    :addTo(self)

    cc.ui.UIImage.new(commImgPath.."tongyongmianban3.png", {scale9 = true})
    :setLayoutSize(display.width - ZySize.scalew* 10, display.size.height - self.menuBgHeight - ZySize.scale * 10)
    :pos(ZySize.scalew * 5, self.menuBgHeight + ZySize.scale * 3)
    :addTo(self)

    cc.ui.UIImage.new(commImgPath.."diban2.np.png", {scale9 = true})
    :setLayoutSize(display.width, self.menuBgHeight)
    :addTo(self)
end



return SceneBase

子类:

local SceneBase = import("app.scenes.SceneBase")
local ActivityScene = class("ActivityScene", SceneBase)

function ActivityScene:ctor()
    ActivityScene.super.ctor(self) -- 这是关键
end

return ActivityScene

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
redis lua 用来传输日志发布时间:2022-07-22
下一篇:
坦克大战(1)在Lua中需要调用的类进行注册发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap