function PromptBoxAutoLayer:getIns()
if PromptBoxAutoLayer.instance_ == nil then
PromptBoxAutoLayer.instance_ = PromptBoxAutoLayer.new();
end
return PromptBoxAutoLayer.instance_;
end
function PromptBoxAutoLayer:createPromptByPos(parentsNode, pos, time, text, isShowArrow)
---parentsNode是Prompt的父节点,第二个参数是Prompt的位置,第三个是显示的时间,
if parentsNode ~= nil and pos ~= nil then
--local pops = PromptBoxAutoLayer.new();
self:initLayerByName("PromptBoxAutoLayer");
self.pos = pos;
self.time = time;
self.showStr = text;
self.isShowArrow = isShowArrow;
local parNode = tolua.cast(parentsNode,"CCNode");
parNode:addChild(self.refCocosObj, 1000 );
end
end
function PromptBoxAutoLayer:onAddToStage()
if self.pos ~= nil then
local Panel = self:getCCSpriteByName("Panel");
if Panel then
Panel:setPosition(self.pos);
end
local Arrow = self:getCCSpriteByName("Arrow");
if Arrow then
if self.isShowArrow ~= nil then
Arrow:setVisible(self.isShowArrow);
else
Arrow:setVisible(false);
end
end
end
local TextLabel = self:getFBLabelByName("TextLabel");
if self.showStr ~= nil then
local text = TextsSys:getInstance():getLocalString(self.showStr);
TextLabel:setString(text);
end
self:setPos();
self:ToDoAnimation();
end
function PromptBoxAutoLayer:close()
self:removeFromParentAndCleanup(true);
end
function PromptBoxAutoLayer:ToDoAnimation()
local Panel = self:getCCSpriteByName("Panel");
if Panel then
Panel:setScale(0.001);
Panel:setVisible(true);
local function updateOut(t,b,c,d)
local r = TweenBack:easeOut(t,b,c,d);
Panel:setScale(r);
end
local scaleOut = LuaAction1d:create(0.5,0,1,updateOut);
local function updateBack(t,b,c,d)
local r = TweenBack:easeIn(t,b,c,d);
Panel:setScale(r);
end
local scaleBack = LuaAction1d:create(0.5,1,0,updateBack);
Panel:runAction(GenAction:Sequence(
scaleOut,
CCDelayTime:create(self.time or 5),
scaleBack,
CCCallFunc:create(function (args)
PromptBoxAutoLayerCon:getIns().BoxOnScrollview = nil;
self:close();
end)));
end
end
function PromptBoxAutoLayer:setPos()
if self.ccnode then
local Panel = self:getCCSpriteByName("Panel");
local Arrow = self:getCCSpriteByName("Arrow");
local px = self.ccnode:getPositionX();
local py = self.ccnode:getPositionY();
local PanelSize = Panel:getContentSize();
local ArrowSize = Arrow:getContentSize();
local nodeSize = self.ccnode:getContentSize();
Panel:setPosition(ccp(px,py + ArrowSize.height + nodeSize.height));
end
end