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