SpriteZOrder=class("SpriteZOrder",function()
return cc.Sprite:create()
end)
SpriteZOrder.ctor=function(self)
self.zorder=1
local size=cc.Director:getInstance():getWinSize()
self:setPosition(size.width/2,size.height/2)
self:setScaleX(12)
end
SpriteZOrder.init=function(self,texture)
self:setTexture(texture)
self:setLocalZOrder(self.zorder)
self:registerScriptHandler(function(tag)
local scheduler=nil
if tag=="enter" then
scheduler=self:onEnter()
elseif tag=="exit" then
self:onExit(scheduler)
end
end)
end
SpriteZOrder.onEnter=function(self)
cclog("<SpriteZOrder.onEnter>")
local function reorderSprite()
cclog("call <reorderSprite>"..os.clock())
local order=self:getLocalZOrder()
if order < -1 then
self.zorder=1
elseif order >10 then
self.zorder=-1
end
self.zorder=self.zorder+3
self:setLocalZOrder(self.zorder)
end
local scheduler=cc.Director:getInstance():getScheduler()
scheduler:scheduleScriptFunc(reorderSprite,2,false)
return scheduler
end
SpriteZOrder.onExit=function(self,scheduler)
cclog("<SpriteZOrder.onExit>")
if scheduler then
cc.Director:getInstance():getScheduler():unscheduleScriptEntry(scheduler)
end
end
SpriteZOrder.create=function(self)
local sprite=self.new()
sprite:init("Images/grossini.png")
return sprite
end
return SpriteZOrder