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: 角标顺序
新手活动
isNewUserActivity: 是否为新手活动(用于差异化逻辑,如屏蔽排行榜等功能)
方法
活动生命周期
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,重写必要的方法 - 通用功能:优先使用基类提供的方法,避免重复实现
- 资源管理:合理使用资源验证和路径获取方法
- 事件处理:正确使用事件验证和通知系统
- 支付流程:遵循标准的支付验证消费流程