| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- // Layout_Collect.ts
- import { _decorator, Button, Component, Node, EventHandler, Label, SpriteFrame } from 'cc';
- import List from '../../scripts/Component/List/List';
- import { ui_collest_item } from './ui_collest_item';
- import { rootMgr } from '../../module_basic/scene/RootMgr';
- import { RewardDataManager } from '../../module_basic/data/RewardDataManager';
- const { ccclass, property } = _decorator;
- @ccclass('Layout_Collect')
- export class Layout_Collect extends Component {
- @property(Button)
- cloose_btn: Button;
- // 列表
- @property(List)
- list1: List = null;
-
-
- protected start() {
- // 加载奖励数据
- RewardDataManager.instance.loadRewards();
- // 监听奖励解锁事件
- rootMgr.game.evt.on('rewardUnlocked', this.onRewardUnlocked, this);
-
- // 绑定列表渲染事件
- if (this.list1) {
- const renderEventHandler = new EventHandler();
- renderEventHandler.target = this.node;
- renderEventHandler.component = 'Layout_Collect';
- renderEventHandler.handler = 'onListRender1';
-
- this.list1.renderEvent = renderEventHandler;
- this.updateList();
- }
- }
- // 更新列表显示
- private updateList() {
- if (this.list1) {
- this.list1.numItems = RewardDataManager.instance.getAllRewards().length;
- }
- }
- // 奖励解锁事件处理
- private onRewardUnlocked() {
- this.updateList();
- }
- onListRender1(item: any, idx: number) {
- let collectItem = item.getComponent(ui_collest_item);
- if (collectItem) {
- const rewards = RewardDataManager.instance.getAllRewards();
- if (idx < rewards.length) {
- const reward = rewards[idx];
-
- // 设置奖励图片
- if (collectItem.bottlesSp && collectItem.rewardSprites[idx]) {
- collectItem.keySp.spriteFrame = collectItem.rewardSprites[idx];
- collectItem.bottlesSp.spriteFrame = collectItem.rewardSprites[idx];
- collectItem.keySp.spriteFrame = collectItem.rewardSprites[idx];
- }
-
- if (collectItem.LabelName) {
- collectItem.LabelName.string = reward.name;
- }
-
- if (collectItem.keyBgNode && collectItem.openBgNode) {
- collectItem.keyBgNode.active = !reward.unlocked;
- collectItem.openBgNode.active = reward.unlocked;
- }
- }
- }
- }
- protected onDestroy(): void {
- rootMgr.game.evt.off('rewardUnlocked', this.onRewardUnlocked, this);
- }
- }
|