import { AppKernel } from "@scripts/app/AppKernel"; import { Button, Color, Component, Node, Toggle, UIOpacity, UIRenderer, find } from "cc"; const CUSTOM_CLICK = "_customOnClick"; export function addBtnClick(btn: Button | Node, onClick: Function, target?) { const onClickHandle = () => { AppKernel.sound.playBtnClick(); onClick && onClick.apply(target); } const isNode = btn instanceof Node; const event_key = isNode ? Node.EventType.TOUCH_END : Button.EventType.CLICK; const btn_node = isNode ? btn : btn.node; btn_node.on(event_key, onClickHandle); btn_node[CUSTOM_CLICK] = onClickHandle; } export function removeBtnClick(btn: Button | Node, onClick, target) { const isNode = btn instanceof Node; const event_key = isNode ? Node.EventType.TOUCH_END : Button.EventType.CLICK; const btn_node = isNode ? btn : btn.node; const onClickHandle = btn_node[CUSTOM_CLICK]; if (onClickHandle) { btn_node.off(event_key, onClickHandle); return; } btn_node.off(event_key, onClick, target); } export function addTogClick(tog: Toggle | Node, onToggle: Function, target?) { if (tog instanceof Toggle) { tog = tog.node; } tog.on(Toggle.EventType.CLICK, onToggle, target) } /** * 设置透明度 * @param ui * @param alpha 0 ~ 1; * @returns */ export function setAlpha(ui: UIRenderer | Node, alpha: number) { if (ui instanceof Node) { const comp = ui.getComponent(UIOpacity) || ui.addComponent(UIOpacity); comp.opacity = alpha; return; } let color = ui.color.clone(); color.a = 255 * alpha; ui.color = color; }