Files
18xchat/assets/Scripts/chat18x/ui/components/SimpleToggleGroup.ts
T
xionglijia d6c3c775b5 美术更新
- detail页面修改
- ui布局修改
2025-08-25 20:15:42 +08:00

39 lines
1.1 KiB
TypeScript

import { _decorator, Component, Node, tween, Vec3 } from "cc";
import { SimpleToggle } from "./SimpleToggle";
const { ccclass, property } = _decorator;
@ccclass("SimpleToggleGroup")
export class SimpleToggleGroup extends Component {
toggles: SimpleToggle[];
@property(Node)
slider: Node;
protected onLoad(): void {
this.toggles = this.getComponentsInChildren(SimpleToggle);
for (let i = 0; i < this.toggles.length; i++) {
const element = this.toggles[i];
element.toggleGroupCallBack = this.toggleSelected.bind(this);
}
}
toggleSelected(selectedNode: Node) {
const pos = this.slider.getWorldPosition();
const targetPos = new Vec3(selectedNode.worldPosition.x, pos.y, pos.z);
tween(this.slider)
.to(0.3, { worldPosition: targetPos }, { easing: "sineInOut" })
.start();
for (let i = 0; i < this.toggles.length; i++) {
const element = this.toggles[i];
if (element.node === selectedNode) {
element.refresh(true);
} else {
element.refresh(false);
element.btn.interactable = true;
}
}
}
}