Slots-Activity 文档
1. Activity.js
功能
活动基类,定义了通用的活动结构与逻辑。
变量
任务相关
taskGroupsMap
/taskGroupsArray
: 存储任务组对象,按ID映射或数组存储runningTaskGroupId
/nextTaskGroupId
: 当前运行的任务组ID和下一个任务组ID
活动基础信息
activityId
/activityName
: 活动ID和名称endTime
: 活动结束时间戳isFinish
: 活动是否完成isStay
: 是否为常驻活动
奖励系统
rewards
: 奖励集合(如金币、道具等)rewardClaimed
/rewardClaimStatus
: 是否已领取奖励,以及领取状态claimType
: 领取奖励的方式(手动/自动)
界面控制
callbackStack
: 回调栈计数器,用于防止多次触发回调entranceAttachPointPriority
: 入口挂点优先级setIndicatorTransparentWhenRequest
: 请求时加载圈透明设置
特殊设置
specialActivityType
: 特殊活动类型标识
方法
活动生命周期管理
initActivity(activityConfig)
: 初始化活动数据,包括任务组、奖励、时间等startActivity()
: 启动活动endActivity()
: 结束活动cleanActivity()
: 清理活动isOpen()
: 判断活动是否处于开放状态getLeftTime()
: 获取剩余时间
定时任务控制
stopScheduleActivity()
: 停止定时更新活动状态scheduleActivity()
: 启动定时更新活动状态update()
: 定时执行的活动更新逻辑,如派发事件、停止过期活动
任务组管理
isActivityComplete()
: 检查所有任务组是否完成getTaskGroupById(taskGroupId)
: 根据ID获取任务组getAllTaskGroup()
: 获取所有任务组getRunningTaskGroupId()
: 获取当前运行的任务组IDgetRunningTaskGroupIndex()
: 获取当前任务组索引getCurrentActivityStage()
: 获取当前活动阶段getTotalTaskGroupNum()
: 获取任务组总数
任务管理
getTaskById(taskGroupId, taskId)
: 根据ID获取具体任务getTaskByIndex(taskGroupIndex, taskIndex)
: 根据索引获取具体任务syncTask(syncData)
: 同步任务数据(如进度、奖励状态)
奖励系统
onClaimReward(claimReward)
: 处理奖励领取后的逻辑(如任务组状态更新)onClaimActivityReward(claimReward)
: 处理整个活动奖励的领取claimActivityReward()
: 发送领取奖励请求getActivityReward()
: 获取活动奖励getRewardsByType(type)
: 根据类型获取奖励相关数据haveRewardNeedToClaim()
: 检查是否有未领取的奖励isAllTaskGroupRewardClaimed()
: 所有任务组奖励是否都已领取isRewardClaimComplete()
: 检查奖励是否全部领取完毕
任务奖励处理
onTaskRewardClaimedComplete(event)
: 任务奖励领取完成后处理逻辑(如开启下一任务组)setTaskGroupStatusFromActivity()
: 设置任务组状态为已完成onCompleteActivity()
: 活动完成后的回调
界面创建
createActivityEntrance(parentNode)
: 创建大厅入口节点createActivityEntranceForShop(parentNode)
: 创建商城入口
自旋相关
preSpinUpdateActivity(callBack)
: 自旋前更新操作postSpinUpdateActivity(callBack)
: 自旋后更新操作
商城相关
getStoreExtraAttachment
: 获取商城额外附件createDiscountExtraAttachment
: 创建折扣额外附件createStoreExtraAttachmentPurchaseResultUI
: 创建商城额外附件购买结果UI
资源管理
validAssets()
: 验证资源是否存在getAssetPath2Valid()
: 获取需要验证的资源路径
音频管理
playAudioEffect(effect, loop)
: 播放音效stopAudioEffect(effect)
: 停止音效playBackgroundMusic(effect)
: 播放背景音乐
事件处理
validateEvent(event)
: 验证事件是否属于当前活动onNotice(noticeType, customData, callback)
: 处理通知消息updateJackpotValue(s2cOtherWinJackpot)
: 更新奖池数值
数据请求
requestNewActivity()
: 请求新活动数据startRequestNewActivityRound()
: 开始请求新活动轮次
本地存储(不推荐使用)
getStorageItem(key, defaultValue)
: 获取本地缓存数据setStorageItem(key, value)
: 设置本地缓存数据removeStorageItem(key)
: 删除本地缓存数据
缓存存储
getStorageCacheItem(key, defaultValue)
: 获取带缓存的本地存储setStorageCacheItem(key, value)
: 设置带缓存的本地存储removeStorageCacheItem(key)
: 删除带缓存的本地存储
便捷方法
getRunningTaskGroup()
: 获取当前运行的任务组getRunningTasks()
: 获取当前运行的任务列表getRunningTask(taskIndex)
: 获取指定索引的当前任务getTaskProgressSafe(taskIndex)
: 获取任务进度getRunningTaskSubjects(taskIndex)
: 获取任务主题hasTaskRewardsToClaim(taskIndex)
: 检查指定任务是否有可领取奖励checkAndClaimTaskReward(taskIndex)
: 检查并领取任务奖励getTaskGroupReward(rewardType)
: 获取任务组奖励getTaskReward(rewardType)
: 获取任务奖励getTaskDescription(taskIndex)
: 获取任务描述
活动配置
changeActivityId(newActivityId)
: 更改活动IDgetIsStay(isPosterFilter)
: 判断是否是常驻活动
数据刷新
refreshActivityData(callback, openMainUI, triggerType, blockIndicator)
: 刷新活动数据pullLeaderBoardData(callback, blockIndicator, param1)
: 获取排行榜数据
2. BaseActivity.js
功能
基础活动类,提供通用功能,如入口控制、UI管理、支付逻辑等。
变量
UI节点
_mainUI
: 主UI节点_progressBar
: 进度条节点_indicator
: 指示器节点_entranceNode
: 入口节点
基础配置
themeName
: 主题名称stopTime
: 停止时间activityTag
: 活动标签
音频控制
playingBgmCount
: 正在播放的背景音乐数量backgroundMusicPath
: 背景音乐路径
界面控制
posterPopupFrozenTime
: 海报弹出冷却时间isShowPoster
: 是否显示海报isShowEntrance
: 是否显示入口isShowEndNotice
: 是否显示结束通知
支付相关
isOpenPurchase
: 是否开启支付isShowDealBtn
: 是否显示商城按钮productId
: 商品IDfuncType
: 功能类型
控制器
MainUIController
: 主界面控制器WidgetController
: 小部件控制器EntranceController
: 入口控制器PayResultController
: 支付结果控制器
其他设置
isCleanGuide
: 是否清除引导isSettleBillWhenEnd
: 是否结算账单popupHighLightPriority
: 弹窗优先级lastPopupBuffTime
: 上次弹窗时间
保护时间
isOpenEndTimeProtect
: 是否开启结束时间保护protectTimeSec
: 保护时间秒数isInProtectedTime
: 是否在保护时间内
角标显示
showFlagStoneTag
: 显示角标标签_flagStoneTagOrder
: 角标顺序
方法
活动生命周期
initActivity(activityConfig)
: 初始化活动数据startActivity()
: 注册支付、商城按钮等监听器endActivity()
: 活动结束逻辑cleanActivity()
: 清理活动资源requestNewActivity()
: 请求新活动数据
界面管理
popupActivityPoster(args)
: 弹出活动海报popupActivityMainUI(triggerType, args)
: 弹出主界面mountSlotSceneExtraUI(slotScene)
: 挂载额外UIcreateActivityEntrance(parentNode)
: 创建大厅入口popupActivityEndUI()
: 弹出结束界面
资源路径
getFullPathOfCCB(ccbName)
: 获取CCB完整路径getThemePathOfCCB(ccbName)
: 获取主题CCB路径
引导系统
initGuide()
: 初始化引导记录cleanGuide()
: 清除引导记录
事件系统
registerNotice(noticeType, callback, target)
: 注册通知监听onNotice(noticeType, customData, callback)
: 处理通知
音乐控制
playMusic(backgroundMusicPath)
: 播放背景音乐stopMusic()
: 停止音乐pauseMusic()
: 暂停音乐resumeMusic()
: 恢复音乐
支付系统
buyProduct(source)
: 单个商品支付buyMultiProduct(productId, funcType, source)
: 多商品支付getProductInfo(productId)
: 获取商品信息onVerifyPurchase(customData, callback)
: 支付验证checkActivityConsume(proto, callback, consumeLogicCallback)
: 支付消耗处理onPurchaseResult(customData, callback)
: 支付结果处理
购买面板
popupBuyPanel(ccbFile, argInfo)
: 弹出购买面板handleBuyPanelController(nodeController)
: 自定义购买面板逻辑
商城相关
onDealUpdate(commonTitle, callback)
: 商城按钮更新
对话框
showNextRoundDialog()
: 弹出再来一轮提示isHideCardPackCheckOut()
: 是否隐藏结算按钮
主题判断
isInThemeStyle(args)
: 判断是否在指定主题中
时间管理
getLeftTime()
: 获取剩余时间(考虑保护时间)update()
: 活动更新逻辑
随机宝箱
setCommonRandomBoxData(activityData)
: 设置随机宝箱数据addNewCommonRandomBox(chestInfo)
: 添加新的宝箱getCommonRandomBoxData()
: 获取宝箱数据getExtraRandomBoxData()
: 获取额外宝箱数据clearExtraRandomBox()
: 清除额外宝箱isCommonRandomBoxGuide()
: 判断宝箱引导setCommonRandomBoxGuide()
: 设置宝箱引导
3. RechargeBonanzaActivity.js
功能
继承自 BaseActivity
,实现充值狂欢活动逻辑。
变量
活动标识
activityTag
: 活动标签(RECHARGE_BONANZA_ACTIVITY
)
控制器
EntranceController
: 入口控制器WidgetController
: 小部件控制器MainUIController
: 主界面控制器
时间控制
redLessThanTime
: 倒计时变红的时间阈值
功能开关
isOpenPurchase
: 是否允许购买isShowEndNotice
: 是否显示结束通知
保护机制
isOpenEndTimeProtect
: 是否启用保护时间protectTimeSec
: 保护时间长度
状态标识
isInCollectFlow
: 是否在收集流程中isHaveActivityData
: 是否有活动数据
方法
初始化
initActivity(activityConfig)
: 初始化活动数据,并创建数据管理模块
数据获取
getActivityData()
: 获取活动数据管理器getActivityUIMng()
: 获取活动UI管理器
生命周期
startActivity(args)
: 注册通知监听器cleanActivity()
: 清理活动资源并取消通知注册
UI附加
createExtraAttachment(attachNode, type, controller)
: 创建附加UIattachStoreAttachment(attachNode, type)
: 绑定商店界面元素
数据处理
getPropsCount()
: 获取道具数量getTaskProgressSafe()
: 获取任务进度customPostSpinUpdateActivity(callback)
: 自定义自旋后更新逻辑syncTask(syncData)
: 同步任务数据
支付处理
isContainFuncType(customData)
: 判断支付类型是否匹配initProductData()
: 初始化商品数据onVerifyPurchase(customData, callback)
: 支付验证处理onPurchaseResult(customData, callback)
: 支付结果处理onConsumePurchase(proto, callback)
: 支付消费逻辑
界面控制
shouldPopupMain(triggerType, args)
: 判断是否应弹出主界面popupActivityMainUI(triggerType, args)
: 弹出主界面popupActivityEndUI()
: 弹出结束界面
状态更新
update()
: 活动更新逻辑hasRewardToClaim()
: 检查是否有可领取奖励isAllTaskFinishedAndClaim()
: 是否所有任务完成isActivityVisible()
: 活动是否可见
资源配置
getAssetPath2Valid()
: 获取资源路径getResolutionScale()
: 分辨率缩放
使用指南
Activity.js 使用场景
- 作为所有活动的基础类
- 定义通用的活动结构和行为
- 提供统一的任务组和奖励管理接口
BaseActivity.js 使用场景
- 实际活动类的直接父类
- 封装UI管理、支付流程等通用功能
- 提供完整的活动生命周期管理
RechargeBonanzaActivity.js 使用场景
- 充值狂欢活动的具体实现
- 展示如何继承
BaseActivity
实现特定活动逻辑 - 可作为其他活动实现的参考模板
开发建议
- 新活动开发:继承
BaseActivity
,重写必要的方法 - 通用功能:优先使用基类提供的方法,避免重复实现
- 资源管理:合理使用资源验证和路径获取方法
- 事件处理:正确使用事件验证和通知系统
- 支付流程:遵循标准的支付验证消费流程