import { _decorator, Component, Node, Rect, tween, UIOpacity, UITransform, Vec2 } from 'cc'; import { PinAction } from './PinAction'; import { ElementAction } from './ElementAction'; import { ColorDate } from './ColorDate'; import { Global } from './Global'; import { DataModel } from './DataModel'; const { ccclass, property } = _decorator; @ccclass('LayerAction') export class LayerAction extends Component { layer_group_id = 0; layer_color:ColorDate = null; start() { console.log("zh:layerAction.ts start"); } update(deltaTime: number) { } public get_hole_num():number{ let hole_num:number = 0; this.node.children.forEach(element_node => { hole_num+= element_node.getComponent(ElementAction).get_hole_num(); }); return hole_num; } public init_layer(){ this.layer_group_id = DataModel.get_new_group_index(); this.layer_color = DataModel.get_layer_color(); this.node.children.forEach(element_node => { element_node.getComponent(ElementAction).init_element(this.layer_group_id,this.layer_color); }); } public init_pin(color_pin_arr:ColorDate[]){ this.node.children.forEach(element_node => { element_node.getComponent(ElementAction).init_pin(this.layer_group_id,color_pin_arr); }); } get_pin_color(arr:PinAction[]){ this.node.children.forEach(element_node => { element_node.getComponent(ElementAction)?.get_pin_color(arr); }); } public get_element_size():number{ return this.node.children.length; } public layer_active(active:boolean,t:number=0.3){ let need_show = !this.node.active; this.node.active = active; // this.node.opa let opc_1 = 100; let opc_2 = 200; if(need_show&&active&&this.node.getComponent(UIOpacity)){ this.node.getComponent(UIOpacity).opacity = 0; tween(this.node.getComponent(UIOpacity)) .to(t, { opacity: opc_1 },Global.our_easing) .to(t, { opacity: opc_2 },Global.our_easing) .to(t, { opacity: opc_1 },Global.our_easing) .to(t, { opacity: opc_2 },Global.our_easing) .to(t, { opacity: opc_1 },Global.our_easing) .to(t, { opacity: opc_2 },Global.our_easing) .to(t, { opacity: opc_1 },Global.our_easing) .to(t, { opacity: 255 },Global.our_easing) .call(()=>{ this.node.getComponent(UIOpacity).opacity = 255; }) .start(); } } }