import { _decorator, Color, Component, EventTouch, instantiate, Label, Node, Prefab, UITransform, Vec3 } from 'cc'; import { Attributes } from '../Attributes'; import { event_item, widget_item_data } from '../../../data/data'; import { config } from '../../config'; const { ccclass, property } = _decorator; @ccclass('search_node') export class search_node extends Component { @property(Node) btn_close:Node = null; @property(Node) content:Node = null; @property(Prefab) item_prefab:Prefab = null; @property(Node) scrollView:Node = null; private m_id:number = 0; public show(search:string){ this.node.active = true; this.btn_close.on(Node.EventType.TOUCH_END,()=>{ this.close() }) this.m_id = parseInt(search) this.content.removeAllChildren() let search_data = this.getCurSearchType() let item = instantiate(this.item_prefab) item.parent = this.content; item.getComponent(Label).color = Color.MAGENTA if(search_data==null){ item.getComponent(Label).string = "当前搜索的id不存在" }else{ if(search_data.type==0){ item.getComponent(Label).string = `您查找的是控件.\n 控件id:${search_data.widget.att.id}.控件名称:${search_data.widget.name}` this.finAboutWidgetList(search_data.widget) }else{ item.getComponent(Label).string = `您查找的是事件.\n 事件id:${search_data.event.event_id}.事件名称:${search_data.event.event_name}` this.finAboutEventList(search_data.event) } } this.scrollView.off(Node.EventType.TOUCH_MOVE) // this.scrollView.on(Node.EventType.TOUCH_MOVE,(et:EventTouch)=>{ // let p = new Vec3(et.getUILocation().x,et.getUILocation().y) // let n_p = this.scrollView.parent.getComponent(UITransform).convertToNodeSpaceAR(p) // this.scrollView.position = n_p; // }) } finAboutWidgetList(widget:widget_item_data){ let widget_id = widget.att.id; let drag_list = Attributes.Singleton.get_cur_scene_widget_by_type(config.Widget_Type_List.DRAG_TYPE) for (let index = 0; index < drag_list.length; index++) { const drag_item = drag_list[index]; if(drag_item.att.drag_data.other_widget_finish_listen_list!=undefined){ for (let index = 0; index < drag_item.att.drag_data.other_widget_finish_listen_list.length; index++) { const element = drag_item.att.drag_data.other_widget_finish_listen_list[index]; if(element.widget_id===widget_id){ let item = instantiate(this.item_prefab) item.parent = this.content; item.getComponent(Label).color = Color.GREEN item.getComponent(Label).string = `被拖拽控件id:${drag_item.att.id}监听` } } } } let click_list = Attributes.Singleton.get_cur_scene_widget_by_type(config.Widget_Type_List.CLICK_TYPE) for (let index = 0; index < click_list.length; index++) { const drag_item = click_list[index]; if(drag_item.att.click_data.other_widget_finish_listen_list!=undefined){ for (let index = 0; index < drag_item.att.click_data.other_widget_finish_listen_list.length; index++) { const element = drag_item.att.click_data.other_widget_finish_listen_list[index]; if(element.widget_id===widget_id){ let item = instantiate(this.item_prefab) item.parent = this.content; item.getComponent(Label).color = Color.GREEN item.getComponent(Label).string = `被点击控件id:${drag_item.att.id}监听` } } } } let slide_list = Attributes.Singleton.get_cur_scene_widget_by_type(config.Widget_Type_List.SLIDE_TYPE) for (let index = 0; index < slide_list.length; index++) { const drag_item = slide_list[index]; if(drag_item.att.slide_data.other_widget_finish_listen_list!=undefined){ for (let index = 0; index < drag_item.att.slide_data.other_widget_finish_listen_list.length; index++) { const element = drag_item.att.slide_data.other_widget_finish_listen_list[index]; if(element.widget_id===widget_id){ let item = instantiate(this.item_prefab) item.parent = this.content; item.getComponent(Label).color = Color.GREEN item.getComponent(Label).string = `被滑动控件id:${drag_item.att.id}监听` } } } } let event_list = Attributes.Singleton.getEventList() for (let index = 0; index < event_list.length; index++) { const event = event_list[index]; switch (event.type) { case config.event_type.play_ani: if(event.event_item_play_ani_data.binding_widget_id==widget_id){ let item = instantiate(this.item_prefab) item.parent = this.content; item.getComponent(Label).color = Color.BLUE item.getComponent(Label).string = `${event.event_name}-id:${event.event_id}绑定` } break; case config.event_type.top_view: if(event.event_item_top_view_data.binding_ui_id===widget_id){ let item = instantiate(this.item_prefab) item.parent = this.content; item.getComponent(Label).color = Color.BLUE item.getComponent(Label).string = `${event.event_name}-id:${event.event_id}绑定` } break; case config.event_type.text_sound: if(event.event_item_text_sound_data.binding_widget_id===widget_id){ let item = instantiate(this.item_prefab) item.parent = this.content; item.getComponent(Label).color = Color.BLUE item.getComponent(Label).string = `${event.event_name}-id:${event.event_id}绑定` } break; case config.event_type.change_one_item_status: if(event.event_item_change_one_item_status_data.binding_widget_id===widget_id){ let item = instantiate(this.item_prefab) item.parent = this.content; item.getComponent(Label).color = Color.BLUE item.getComponent(Label).string = `${event.event_name}-id:${event.event_id}绑定` } break; case config.event_type.show_new_item: if(event.event_item_show_new_item_data.binding_widget_id===widget_id){ let item = instantiate(this.item_prefab) item.parent = this.content; item.getComponent(Label).color = Color.BLUE item.getComponent(Label).string = `${event.event_name}-id:${event.event_id}绑定` } break; case config.event_type.show_question_select: if(event.event_item_show_question_select_data.binding_widget_id===widget_id){ let item = instantiate(this.item_prefab) item.parent = this.content; item.getComponent(Label).color = Color.BLUE item.getComponent(Label).string = `${event.event_name}-id:${event.event_id}绑定` } break; case config.event_type.active_event: if(event.event_item_active_event_data.binding_widget_id===widget_id){ let item = instantiate(this.item_prefab) item.parent = this.content; item.getComponent(Label).color = Color.BLUE item.getComponent(Label).string = `${event.event_name}-id:${event.event_id}绑定` } break; case config.event_type.stop_active_event: if(event.event_item_stop_active_event_data.binding_widget_id===widget_id){ let item = instantiate(this.item_prefab) item.parent = this.content; item.getComponent(Label).color = Color.BLUE item.getComponent(Label).string = `${event.event_name}-id:${event.event_id}绑定` } break; case config.event_type.countdown_over: if(event.event_item_countdown_over_data.binding_widget_id===widget_id){ let item = instantiate(this.item_prefab) item.parent = this.content; item.getComponent(Label).color = Color.BLUE item.getComponent(Label).string = `${event.event_name}-id:${event.event_id}绑定` } break; case config.event_type.be_event: if(event.event_item_be_event_data.binding_widget_id===widget_id){ let item = instantiate(this.item_prefab) item.parent = this.content; item.getComponent(Label).color = Color.BLUE item.getComponent(Label).string = `${event.event_name}-id:${event.event_id}绑定` } break; case config.event_type.hide: if(event.event_item_hide_data.binding_widget_id===widget_id){ let item = instantiate(this.item_prefab) item.parent = this.content; item.getComponent(Label).color = Color.BLUE item.getComponent(Label).string = `${event.event_name}-id:${event.event_id}绑定` } break; case config.event_type.delete_drag_other_data: if(event.event_item_delete_drag_other_data.widget_id===widget_id){ let item = instantiate(this.item_prefab) item.parent = this.content; item.getComponent(Label).color = Color.BLUE item.getComponent(Label).string = `${event.event_name}-id:${event.event_id}绑定` } break; } } } finAboutEventList(event:event_item){ let event_id = event.event_id; let event_list = Attributes.Singleton.getEventList() for (let index = 0; index < event_list.length; index++) { const event = event_list[index]; if(event.success.trigger_event_id==event_id){ let item = instantiate(this.item_prefab) item.parent = this.content; item.getComponent(Label).color = Color.BLUE item.getComponent(Label).string = `${event.event_name}-id:${event.event_id}绑定` } switch (event.type) { case config.event_type.show_question_select: let question_list = event.event_item_show_question_select_data.question_list; for (let index = 0; index < question_list.length; index++) { const i = question_list[index]; if(i.binding_event_id===event_id){ let item = instantiate(this.item_prefab) item.parent = this.content; item.getComponent(Label).color = Color.BLUE item.getComponent(Label).string = `${event.event_name}-id:${event.event_id}绑定` } } break; case config.event_type.start_event: if(event_id ===event.event_item_start_event_data.binding_event_id){ let item = instantiate(this.item_prefab) item.parent = this.content; item.getComponent(Label).color = Color.BLUE item.getComponent(Label).string = `${event.event_name}-id:${event.event_id}绑定` } break; case config.event_type.collect_event: let event_id_list = event.event_item_collect_event_data.event_id_list for (let index = 0; index < event_id_list.length; index++) { const element = event_id_list[index]; if(element===event_id){ let item = instantiate(this.item_prefab) item.parent = this.content; item.getComponent(Label).color = Color.BLUE item.getComponent(Label).string = `${event.event_name}-id:${event.event_id}绑定` } } break; case config.event_type.delay_exe_event: if(event.event_item_delay_exe_data.binding_event_id==event_id){ let item = instantiate(this.item_prefab) item.parent = this.content; item.getComponent(Label).color = Color.BLUE item.getComponent(Label).string = `${event.event_name}-id:${event.event_id}绑定` } break; } } let drag_list = Attributes.Singleton.get_cur_scene_widget_by_type(config.Widget_Type_List.DRAG_TYPE) for (let index = 0; index < drag_list.length; index++) { const drag_item = drag_list[index]; if(drag_item.att.drag_data.other_widget_finish_listen_list!=undefined){ for (let index = 0; index < drag_item.att.drag_data.other_widget_finish_listen_list.length; index++) { const element = drag_item.att.drag_data.other_widget_finish_listen_list[index]; if(element.event_id===event_id){ let item = instantiate(this.item_prefab) item.parent = this.content; item.getComponent(Label).color = Color.GREEN item.getComponent(Label).string = `被拖拽控件id:${drag_item.att.id}调用` } } } } let top_list = Attributes.Singleton.get_cur_scene_widget_by_type(config.Widget_Type_List.UI_TOP) for (let index = 0; index < top_list.length; index++) { const top_item = top_list[index]; if(top_item.att.top_data.close_event_id===event_id){ let item = instantiate(this.item_prefab) item.parent = this.content; item.getComponent(Label).color = Color.GREEN item.getComponent(Label).string = `被弹窗件id:${top_item.att.id}调用` } if(top_item.att.top_data.finish_event_id===event_id){ let item = instantiate(this.item_prefab) item.parent = this.content; item.getComponent(Label).color = Color.GREEN item.getComponent(Label).string = `被弹窗件id:${top_item.att.id}调用` } if(top_item.att.top_data.fail_event_id===event_id){ let item = instantiate(this.item_prefab) item.parent = this.content; item.getComponent(Label).color = Color.GREEN item.getComponent(Label).string = `被弹窗件id:${top_item.att.id}调用` } } } public getCurSearchType(){ let widget_list = Attributes.Singleton.get_cur_scene_all_widget() let widget:widget_item_data = null; for (let index = 0; index < widget_list.length; index++) { const element = widget_list[index]; if(this.m_id==element.att.id){ widget = element; break; } } let event:event_item = null; if(widget==null){ let event_list = Attributes.Singleton.getEventList() for (let index = 0; index < event_list.length; index++) { const element = event_list[index]; if(this.m_id==element.event_id){ event = element; break; } } if(event!=null){ return {"event":event,"type":1} } }else{ return {"widget":widget,"type":0} } return null; } public close(){ this.node.active = false; } }