2025-06-04 05:02:57 +08:00

78 lines
2.0 KiB
Plaintext

SceneEmojiCell = reusableClass("SceneEmojiCell");
SceneEmojiCell.PoolSize = 50
function SceneEmojiCell:Active(b)
if(not Slua.IsNull(self.gameObject))then
self.gameObject:SetActive(b);
end
end
-- data (resID, animationName, endCall, depth, loopCount)
function SceneEmojiCell:PlayEmoji( animationName, loopCount, endCall, endCallArgs )
if(Slua.IsNull(self.anim))then
return;
end
self.anim = self.gameObject:GetComponent(SkeletonAnimation);
self.anim.AnimationName = animationName;
self.anim:Reset();
self.anim.loop = false;
loopCount = loopCount or 1;
if(not self.playFunc)then
self.playFunc = function ()
loopCount = loopCount - 1;
if(loopCount > 0)then
self:PlayEmoji( animationName, loopCount, endCall, endCallArgs );
else
if nil ~= endCall then
endCall( endCallArgs );
end
end
end
end
SpineLuaHelper.PlayAnim(self.anim, animationName, self.playFunc);
end
-- override begin
function SceneEmojiCell:DoConstruct(asArray, args)
local parent = args[1];
if(not LuaGameObject.ObjectIsNull(parent))then
self.resPath = args[2];
self.gameObject = Game.AssetManager_UI:CreateSceneUIAsset(self.resPath, parent.transform);
self.gameObject.transform.localPosition = LuaGeometry.Const_V3_zero;
self.gameObject.transform.localRotation = LuaGeometry.Const_Qua_identity;
self.gameObject.transform.localScale = LuaGeometry.Const_V3_one;
UIUtil.ChangeLayer(self.gameObject, parent.gameObject.layer)
self.anim = self.gameObject:GetComponent(SkeletonAnimation);
local depth = args[3];
if(type(depth) == 'number')then
local uispine = self.gameObject:GetComponent(UISpine);
if(uispine)then
uispine.depth = depth;
end
end
self:PlayEmoji( args[4], args[5], args[6], args[7] );
end
end
function SceneEmojiCell:DoDeconstruct(asArray)
if(not LuaGameObject.ObjectIsNull(self.gameObject))then
Game.GOLuaPoolManager:AddToSceneUIPool(self.resPath, self.gameObject);
end
self.playFunc = nil;
self.gameObject = nil;
self.anim = nil;
self.resPath = nil;
end
-- override end