lua介面屬性設定 skybeauty 新浪部落格

2021-10-10 12:06:21 字數 2866 閱讀 8774

local baseui = {}

--[[--

給指定object新增一些基本特性 ]]

function baseui.extend(object)

--[[--

初始化基本ui,例如座標,錨點 ]]

function object:initbaseui(conf)

-- 設定座標

if conf.x and conf.y then

local vx = conf.x

local vy = conf.y

if  conf.x < 1 and conf.x > 0 then

vx = visiblesize.width *  conf.x

endif conf.y < 1  and conf.y  > 0 then

vy = visiblesize.height *  conf.y

end-- 僅限於頂層元素

local halign = conf.halign or "left"  -- 水平

local valign = conf.valign or "bottom"          -- 垂直

if halign == "right" then

vx = visiblesize.width - vx

endif valign == "top" then

vy =   visiblesize.height - vy

endobject.displayobj:setposition(ccp(vx, vy))

end-- 設定縮放

if conf.scale then

object.displayobj:setscale(conf.scale)

end-- 設定可見性

if conf.visible ~= nil then

object.displayobj:setvisible(conf.visible)

end-- 設定描點

if conf.anchorpoint ~= nil then

object.displayobj:setanchorpoint(ccp(conf.anchorpoint.x, conf.anchorpoint.y))

end-- 吞噬事件

if conf.swallowtouch then

local function ontouch(eventtype, x, y)

return true

endobject.displayobj:settouchenabled(true)

object.displayobj:registerscripttouchhandler(ontouch,false,true)

endend

--[[--

獲取顯示物件 ]]

function object:getdisplayobj()

return object.displayobj

end--[[--

新增child ]]

function object:addchild(obj, isdisplayobj)

if isdisplayobj then

object.displayobj:addchild(obj)

else

object.displayobj:addchild(obj:getdisplayobj())

endend

--[[

新增到父節點 ]]

function object:addtoparent(parent, isdisplayobj)

if isdisplayobj then

parent:addchild(object.displayobj)

else

parent:addchild(object)

endend

--[[-- 清理

]]function object:clear()

pcall(object.displayobj.removefromparentandcleanup, object.displayobj, true)

endend

--[[--

按照建立精靈

pic 配置 ]]

function baseui.createspritefrompic(pic)

if pic.frame ~= nil and pic.frame == true then

local frame = ccspriteframecache:sharedspriteframecache():spriteframebyname(pic.path)

return ccsprite:createwithspriteframe(frame)

else

return ccsprite:create(tool.respath(pic.path))

endend

--[[--

按照建立sprite9

pic 配置 ]]

function baseui.createsprite9frompic(pic, middlerect, preferedsize)

local sprite9

if pic.frame ~= nil and pic.frame == true then

sprite9 = ccscale9sprite:createwithspriteframename(pic.path, middlerect)

else

sprite9 = ccscale9sprite:create(pic)

endsprite9:setpreferredsize(preferedsize)

return sprite9

endreturn baseui

設定介面android 設定介面

最近研究設定介面,稍微總結一下,以後繼續補充 android供給了方便的安排設定介面的介面,不得不真心說個贊。對基本功能設計者都斟酌到了,極大方便了開發者,如果對設定介面沒有什麼特殊需求,那麼這些介面完全能滿足你,閒話少說,直接上案例。如果只是簡單設定,那麼完全可以在乙個xml檔案中布局。而且設計者...

Lua設定唯讀表

簡單理解一下 在lua中,當你從乙個table中查詢值的時候,實際上是lua直譯器觸發了 index 而當你賦值時,則是訪問了 newindex 如果 newindex存在就會呼叫這個函式,而不進行賦值。所以重寫這兩個函式就可以達到唯讀表的效果 function table read only t ...

Kotlin介面 屬性

例項介面1 package com.init.demo.inte ce 介面 屬性抽象 inte ce personinte ce實力介面實現類1 package com.init.demo.inte ceimpl import com.init.demo.inte ce personinte ce...