123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552 |
- 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_event_item: event_item;
- private m_id:number = 0;
- public show(eventItem: event_item){
- this.m_event_item = eventItem
- let search = eventItem.event_id.toString()
- 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;
- // })
- if(search_data!=null) {
- this.showBinding(search_data)
- }
- this.showNextSuccessTrigger()
- }
- private showBinding(search_data) {
- let c_event_item:event_item = search_data.event
- if(c_event_item==null){
- return
- }
- let c_text = ""
- let c_data
- switch (c_event_item.type) {
- case config.event_type.play_ani: //0播放动画
- c_data = c_event_item.event_item_play_ani_data
- c_text = `id:${c_data.binding_widget_id} 选中的动画id:${c_data.ani_id}`
- break;
- case config.event_type.top_view: //1弹窗
- c_text = `${c_event_item.event_item_top_view_data.binding_ui_id}`
- break;
- case config.event_type.top_view_hide: //23弹窗隐藏
- c_text = `${c_event_item.event_item_top_view_hide_data.binding_ui_id}`
- break;
- case config.event_type.text_sound: //2出现文字及语音
- c_text = `${c_event_item.event_item_text_sound_data.binding_widget_id}`
- break;
- case config.event_type.change_one_item_status: //3改变指定道具资源
- c_text = `${c_event_item.event_item_change_one_item_status_data.binding_widget_id}`
- break;
- case config.event_type.show_new_item://4出现新道具
- c_text = `${c_event_item.event_item_show_new_item_data.binding_widget_id}`
- break;
- case config.event_type.show_question_select://5出现问题选择
- c_text = `${c_event_item.event_item_show_question_select_data.binding_widget_id}`
- break;
- case config.event_type.start_event://6开始事件
- c_text = `${c_event_item.event_item_start_event_data.binding_event_id}`
- break;
- case config.event_type.collect_event://7收集事件 多组件完成触发
- c_data = c_event_item.event_item_collect_event_data
- for(let index = 0; index<c_data.event_id_list.length; index++) {
- const element = c_data.event_id_list[index]
- c_text += `${element} `
- }
- break;
- case config.event_type.active_event://8激活
- c_data = c_event_item.event_item_active_event_data
- c_text = `${c_data.binding_widget_id}`
- for(let index = 0; index <c_data.binding_widget_list.length; index++) {
- const element = c_data.binding_widget_list[index]
- let str = `\n${element.binding_widget_id}`
- c_text += str
- }
- break;
- case config.event_type.stop_active_event://9停用交互
- c_data = c_event_item.event_item_stop_active_event_data
- c_text = `${c_data.binding_widget_id}`
- for(let index = 0; index <c_data.binding_widget_list.length; index++) {
- const element = c_data.binding_widget_list[index]
- let str = `\n${element.binding_widget_id}`
- c_text += str
- }
- break;
- case config.event_type.countdown_over://10倒计时结束
- c_text = `${c_event_item.event_item_countdown_over_data.binding_widget_id}`
- break;
- case config.event_type.be_event: //11被动触发事件
- c_text = `${c_event_item.event_item_be_event_data.binding_widget_id}`
- break;
- case config.event_type.hide://12触发让控件隐藏
- c_data = c_event_item.event_item_hide_data
- c_text = `${c_data.binding_widget_id}`
- for(let index = 0; index <c_data.binding_widget_list.length; index++) {
- const element = c_data.binding_widget_list[index]
- let str = `\n${element.binding_widget_id}`
- c_text += str
- }
- break;
- case config.event_type.delay_exe_event://13延迟多久执行一个事件
- c_text = `${c_event_item.event_item_delay_exe_data.binding_event_id}`
- break;
- case config.event_type.fail_event://14失败
- c_data = c_event_item.event_item_fail_event_data
- let is_relife_str = c_data.is_relife ? '是' : '否'
- let is_show_animation_str = c_data.is_show_animation ? '是' : '否'
- c_text = `是否可以复活:${is_relife_str} 是否显示动画:${is_show_animation_str}`
- break;
- case config.event_type.play_sound://15播放一个音效
- c_data =c_event_item.event_item_play_sound_data
- let isLoop_str = c_data.isLoop ? '是' : '否'
- c_text = `是否循环:${isLoop_str} 音量:${c_data.volume}`
- break;
- case config.event_type.show_scene_title://16显示场景的标签
- c_text = `${c_event_item.event_item_show_scene_title_data.title}`
- break;
- case config.event_type.scene_ani://17场景动画
- c_text = `${c_event_item.event_item_scene_ani.ani_id}`
- break;
- case config.event_type.delete_drag_other_data://18删除其他拖拽目标的属性
- c_data = c_event_item.event_item_delete_drag_other_data
- c_text = `${c_data.widget_id} 索引${c_data.delete_drag_other_index}`
- for(let index = 0; index <c_data.widget_list.length; index++) {
- const element = c_data.widget_list[index]
- let str = `\n${element.widget_id} 索引${element.delete_drag_other_index}`
- c_text += str
- }
- break;
- case config.event_type.stop_play_loop_sound://19停止一个音效
- c_text = `${c_event_item.event_item_stop_play_loop_sound_data.res}`
- break;
- case config.event_type.switch_scene_event://20切换场景
- let direction = c_event_item.event_item_switch_scene_event_data.direction
- let direction_str = '按钮-无'
- if(direction == config.switch_scene_page_direction.up) {
- direction_str = '按钮-上'
- } else if(direction == config.switch_scene_page_direction.down) {
- direction_str = '按钮-下'
- } else if(direction == config.switch_scene_page_direction.left) {
- direction_str = '按钮-左'
- } else if(direction == config.switch_scene_page_direction.right) {
- direction_str = '按钮-右'
- }
- let executeOnlyOnce_string = c_event_item.event_item_switch_scene_event_data.executeOnlyOnce ? '是' : '否'
- c_text = `方向:${direction_str} 页数:${c_event_item.event_item_switch_scene_event_data.binding_page_index+1} 仅执行一次:${executeOnlyOnce_string}`
- break;
- case config.event_type.more_scene_is_show_arrow_event://21多场景-是否显示箭头
- c_text = c_event_item.event_item_more_scene_is_show_arrow_event_data.is_show ? '是' : '否'
- break;
- case config.event_type.more_scene_jump_assigned_page_event://22多场景-跳转指定页数事件
- c_text = `页数:${c_event_item.event_item_more_scene_jump_assigned_page_event_data.page_number}`
- break;
- case config.event_type.top_view_hide://23弹窗隐藏
- c_text = `${c_event_item.event_item_top_view_hide_data.binding_ui_id}`
- break;
- case config.event_type.event_group://100事件组
- let line_feed_str = '\n'
- let event_list = c_event_item.event_item_event_group_data.list
- if(event_list.length>0) {
- for(let index = 0; index<event_list.length; index++) {
- const element = event_list[index]
- let before = ''
- if(index==0) { before = line_feed_str }
- let last = line_feed_str
- if(index==event_list.length-1) { last = ''}
- let str = `${before}延时${element.delay_time}s 执行:事件名:${element.event_item.event_name}-id:${element.event_item.event_id}${last}`
- c_text += str
- }
- } else {
- c_text = `空`
- }
- break
- }
- if(c_text!="") {
- let c_title = config.get_event_type_name(c_event_item.type)
- let item = instantiate(this.item_prefab)
- item.parent = this.content;
- item.getComponent(Label).color = Color.BLACK
- item.getComponent(Label).string = "\n当前绑定-> " + c_title + ": " + c_text
- }
- }
- private showNextSuccessTrigger() {
- let text = ''
- if(this.m_event_item.success.trigger_event_id==-1) {
- text = "\n暂未设置触发下个事件的id"
- } else {
- text = `\n触发下个事件的id${this.m_event_item.success.trigger_event_id}`
- }
- let item = instantiate(this.item_prefab)
- item.parent = this.content;
- item.getComponent(Label).color = Color.RED
- item.getComponent(Label).string = text
- // let event_list = Attributes.Singleton.getEventList()
- // for (let index = 0; index < event_list.length; index++) {
- // const element = event_list[index];
- // if(element.event_id == this.m_event_item.success.trigger_event_id) {
- // console.log('type=',element.type)
- // break
- // }
- // }
- }
- 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.top_view_hide:
- if(event.event_item_top_view_hide_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;
- case config.event_type.top_view_hide:
- if(event.event_item_top_view_hide_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;
- }
- }
- }
- 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(id:number=this.m_id){
- 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(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(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;
- }
- }
|