future 1 年之前
父节点
当前提交
ee5b2af738

+ 8 - 1
assets/data/data.ts

@@ -446,6 +446,7 @@ export class event_item_show_new_item extends base_event_item{ // 出现新道
 }
 export class event_item_hide extends base_event_item{ // 隐藏
     public binding_widget_id:number = -1; //绑定某一个UI
+    public binding_widget_list:event_widget_more_event_item[] = [] //绑定事件列表
 }
 
 export class event_item_delay_exe_event extends base_event_item{ // 延迟多久执行一个事件
@@ -465,10 +466,11 @@ export class event_start_event_item extends base_event_item{ // 开始的事件
 }
 export class event_active_event_item extends base_event_item{ // 激活控件的事件
     public binding_widget_id:number = -1; //绑定事件
-    public binding_widget_list_id:number[] = [] //绑定事件列表
+    public binding_widget_list:event_widget_more_event_item[] = [] //绑定事件列表
 }
 export class event_stop_active_event_item extends base_event_item{ // 不激活控件的事件,停用交互
     public binding_widget_id:number = -1; //绑定事件
+    public binding_widget_list:event_widget_more_event_item[] = [] //绑定事件列表
 }
 export class event_collect_event_item extends base_event_item{ // 收集多个事件完成
     public event_id_list:number[] = []
@@ -490,6 +492,11 @@ export class event_item_switch_scene_event extends base_event_item { // 切换
     public delay_time:number = 0;
 }
 
+export class event_widget_more_event_item extends base_event_item {
+    public binding_widget_id:number = -1; //绑定事件
+    public binding_widget_remark:string = ''; //绑定备注
+}
+
 export class UserData {
     public user_id:string = null; //用户id
     public token:string = "";

文件差异内容过多而无法显示
+ 475 - 123
assets/resources/prefab/add_animation.prefab


文件差异内容过多而无法显示
+ 201 - 560
assets/resources/prefab/edit_event.prefab


+ 2 - 2
assets/resources/prefab/edit_event_more_item.prefab

@@ -185,7 +185,7 @@
     "_isSystemFontUsed": true,
     "_spacingX": 0,
     "_isItalic": false,
-    "_isBold": false,
+    "_isBold": true,
     "_isUnderline": false,
     "_underlineHeight": 2,
     "_cacheMode": 0,
@@ -321,7 +321,7 @@
     "_isSystemFontUsed": true,
     "_spacingX": 0,
     "_isItalic": false,
-    "_isBold": false,
+    "_isBold": true,
     "_isUnderline": false,
     "_underlineHeight": 2,
     "_cacheMode": 0,

+ 1 - 1
assets/script/config.ts

@@ -5,7 +5,7 @@ const { ccclass, property } = _decorator;
 export class config {
     static debug = true;
     static domain = "https://zcapi.xwrun.com";
-    static is_MAC_edit = false; //目前临时处理:如果是Mac并且浏览器打开了检查时设置为false,正式打包需要设置为true
+    static is_MAC_edit = true; //目前临时处理:如果是Mac并且浏览器打开了检查时设置为false,正式打包需要设置为true
     static select_res_and_control_type = {
         RES_TYPE:0,
         CONTROL_TYPE:1,

+ 10 - 1
assets/script/edit/animation/new_frame.ts

@@ -34,6 +34,8 @@ export class new_frame extends Component {
 
     @property(Node) res_preview:Node = null;
 
+    @property(Node) btn_update_cur_pos:Node = null;
+
     private m_up_frame:ani_frame = null;
     private m_create_call = null;
     private m_edit_call = null;
@@ -107,7 +109,14 @@ export class new_frame extends Component {
                 this.setupSprContentSize()
             })
         })
-        
+
+        this.btn_update_cur_pos.on(Node.EventType.TOUCH_END, ()=> {
+            let att_data = Attributes.Singleton.get_cur_att_data()
+            this.m_data.pos_x = Math.floor(att_data.x)
+            this.m_data.pos_y = Math.floor(att_data.y)
+            this.pos_x.getComponent(EditBox).string = this.m_data.pos_x.toString()
+            this.pos_y.getComponent(EditBox).string = this.m_data.pos_y.toString()
+        })
 
         this.next_time.on('editing-did-ended', this.change, this);
         this.pos_x.on('editing-did-ended', this.change, this);

+ 4 - 2
assets/script/edit/event/edit_event_more_item.ts

@@ -1,4 +1,5 @@
 import { _decorator, Component, Label, Node } from 'cc';
+import { event_widget_more_event_item } from '../../../data/data';
 const { ccclass, property } = _decorator;
 
 @ccclass('edit_event_more_item')
@@ -15,9 +16,10 @@ export class edit_event_more_item extends Component {
         },this)
     }
 
-    initView(id:number, delete_callback:Function) {
+    initView(data:event_widget_more_event_item, delete_callback:Function) {
         this.m_delete_callback = delete_callback
-        this.lab_id.getComponent(Label).string = 'id:' + id
+        this.lab_id.getComponent(Label).string = 'id:' + data.binding_widget_id
+        this.lab_remark.getComponent(Label).string = data.binding_widget_remark
     }
 }
 

+ 51 - 23
assets/script/edit/event/event_active_event.ts

@@ -1,5 +1,5 @@
 import { _decorator, Component, instantiate, Label, Node, Prefab } from 'cc';
-import { attributes_data, event_active_event_item, widget_item_data } from '../../../data/data';
+import { attributes_data, event_active_event_item, event_widget_more_event_item, widget_item_data } from '../../../data/data';
 import { Attributes } from '../Attributes';
 import { config } from '../../config';
 import { tools } from '../../tools';
@@ -17,19 +17,7 @@ export class event_active_event extends Component {
     @property(Prefab) item_more_prefab:Prefab = null;
     protected start(): void {
         this.btn_more.on(Node.EventType.TOUCH_END, ()=> {
-            let list =  Attributes.Singleton.get_cur_scene_all_only_widget()
-            if(list.length<=0){
-                return tools.showToast("当前场景没有添控件!")
-            }
-            tools.show_select_widget_list(list,(item:widget_item_data)=>{
-                console.log('item.att')
-                let index = this.m_data.binding_widget_list_id.indexOf(item.att.id)
-                if(index!=-1) {
-                    this.m_data.binding_widget_list_id.splice(index,1)
-                }
-                this.m_data.binding_widget_list_id.push(item.att.id)
-                this.updateMoreListStatus()
-            })
+            this.onClickMoreBtn()
         },this)
     }
     public initView(data:event_active_event_item){
@@ -53,26 +41,66 @@ export class event_active_event extends Component {
         ClientEvent.off(config.Event.UpdateAttributesToView,this.UpdateAttributesToView,this)
     }
     UpdateAttributesToView(data:attributes_data,update_type:string){
-        if(this.m_data.binding_widget_id===data.id&&update_type===config.attributes_list_type.delete){
-            console.log('激活清空 激活清空')
-            this.m_data.binding_widget_id = -1;
-            this.updateStatus()
+        if(update_type==config.attributes_list_type.delete) {
+            if(this.m_data.binding_widget_id===data.id){
+                this.m_data.binding_widget_id = -1;
+                this.updateStatus()
+            }
+            let is_have = false
+            for(let i=0;i<this.m_data.binding_widget_list.length;i++) {
+                const element = this.m_data.binding_widget_list[i]
+                if(element.binding_widget_id===data.id) {
+                    element.binding_widget_id = -1;
+                    is_have = true
+                }
+            }
+            if(is_have) {
+                this.updateMoreListStatus()
+            }
         }
     }
     updateStatus(){
         this.lab_name.getComponent(Label).string =  this.m_data.binding_widget_id===-1?"当前选择激活的控件":`当前选择激活的控件id:${this.m_data.binding_widget_id}`
     }
+    onClickMoreBtn() {
+        let list =  Attributes.Singleton.get_cur_scene_all_only_widget()
+        if(list.length<=0){
+            return tools.showToast("当前场景没有添控件!")
+        }
+        tools.show_select_widget_list(list,(item:widget_item_data)=>{
+            if(item.att.id == this.m_data.binding_widget_id) {
+                return
+            }
+            var have_index:number = -1
+            for(let i=0; i<this.m_data.binding_widget_list.length; i++) {
+                const element = this.m_data.binding_widget_list[i]
+                
+                if(element.binding_widget_id == item.att.id) {
+                    have_index = i
+                    break
+                }
+            }
+            if(have_index!=-1) {
+                this.m_data.binding_widget_list.splice(have_index,1)
+            }
+            let more_item = new event_widget_more_event_item
+            more_item.binding_widget_id = item.att.id
+            more_item.binding_widget_remark = item.att.remark
+            this.m_data.binding_widget_list.push(more_item)
+            this.updateMoreListStatus()
+        },this.m_data.binding_widget_id)
+    }
     updateMoreListStatus() {
-        if(this.m_data.binding_widget_list_id==undefined) {
-            this.m_data.binding_widget_list_id = []
+        if(this.m_data.binding_widget_list==undefined) {
+            this.m_data.binding_widget_list = []
         }
         this.content.removeAllChildren()
-        for(let index = 0; index < this.m_data.binding_widget_list_id.length; index ++) {
-            const element = this.m_data.binding_widget_list_id[index]
+        for(let index = 0; index < this.m_data.binding_widget_list.length; index ++) {
+            const element = this.m_data.binding_widget_list[index]
             let item = instantiate(this.item_more_prefab);
             item.parent = this.content;
             item.getComponent(edit_event_more_item).initView(element, ()=>{
-                this.m_data.binding_widget_list_id.splice(index,1)
+                this.m_data.binding_widget_list.splice(index,1)
                 this.updateMoreListStatus()
             })
         }

+ 55 - 2
assets/script/edit/event/event_hide.ts

@@ -1,9 +1,10 @@
-import { _decorator, Component, Label, Node } from 'cc';
-import { attributes_data, event_item_hide, widget_item_data } from '../../../data/data';
+import { _decorator, Component, instantiate, Label, Node, Prefab } from 'cc';
+import { attributes_data, event_item_hide, event_widget_more_event_item, widget_item_data } from '../../../data/data';
 import { tools } from '../../tools';
 import { Attributes } from '../Attributes';
 import { ClientEvent } from '../../clientEvent';
 import { config } from '../../config';
+import { edit_event_more_item } from './edit_event_more_item';
 const { ccclass, property } = _decorator;
 
 @ccclass('event_hide')
@@ -11,6 +12,14 @@ export class event_hide extends Component {
     private m_data:event_item_hide = null;
     @property(Node) btn_select_widget:Node = null;
     @property(Node) lab_select_widget:Node = null;
+    @property(Node) btn_more:Node = null;
+    @property(Node) content:Node = null;
+    @property(Prefab) item_more_prefab:Prefab = null;
+    protected start(): void {
+        this.btn_more.on(Node.EventType.TOUCH_END, ()=> {
+            this.onClickMoreBtn()
+        },this)
+    }
     public initView(data:event_item_hide){
         this.m_data = data;
         this.btn_select_widget.on(Node.EventType.TOUCH_END,()=>{
@@ -24,6 +33,7 @@ export class event_hide extends Component {
             },this.m_data.binding_widget_id)
         })
         this.updateStatus()
+        this.updateMoreListStatus()
         ClientEvent.on(config.Event.UpdateAttributesToView,this.UpdateAttributesToView,this)
     }
 
@@ -43,6 +53,49 @@ export class event_hide extends Component {
             this.lab_select_widget.getComponent(Label).string = "隐藏的控件id:"+this.m_data.binding_widget_id;
         }
     }
+    onClickMoreBtn() {
+        let list =  Attributes.Singleton.get_cur_scene_all_only_widget()
+        if(list.length<=0){
+            return tools.showToast("当前场景没有添控件!")
+        }
+        tools.show_select_widget_list(list,(item:widget_item_data)=>{
+            if(item.att.id == this.m_data.binding_widget_id) {
+                return
+            }
+            var have_index:number = -1
+            for(let i=0; i<this.m_data.binding_widget_list.length; i++) {
+                const element = this.m_data.binding_widget_list[i]
+                
+                if(element.binding_widget_id == item.att.id) {
+                    have_index = i
+                    break
+                }
+            }
+            if(have_index!=-1) {
+                this.m_data.binding_widget_list.splice(have_index,1)
+            }
+            let more_item = new event_widget_more_event_item
+            more_item.binding_widget_id = item.att.id
+            more_item.binding_widget_remark = item.att.remark
+            this.m_data.binding_widget_list.push(more_item)
+            this.updateMoreListStatus()
+        },this.m_data.binding_widget_id)
+    }
+    updateMoreListStatus() {
+        if(this.m_data.binding_widget_list==undefined) {
+            this.m_data.binding_widget_list = []
+        }
+        this.content.removeAllChildren()
+        for(let index = 0; index < this.m_data.binding_widget_list.length; index ++) {
+            const element = this.m_data.binding_widget_list[index]
+            let item = instantiate(this.item_more_prefab);
+            item.parent = this.content;
+            item.getComponent(edit_event_more_item).initView(element, ()=>{
+                this.m_data.binding_widget_list.splice(index,1)
+                this.updateMoreListStatus()
+            })
+        }
+    }
 }
 
 

+ 71 - 5
assets/script/edit/event/event_stop_active_event.ts

@@ -1,9 +1,10 @@
-import { _decorator, Component, Label, Node } from 'cc';
-import { attributes_data, event_stop_active_event_item, widget_item_data } from '../../../data/data';
+import { _decorator, Component, instantiate, Label, Node, Prefab } from 'cc';
+import { attributes_data, event_stop_active_event_item, event_widget_more_event_item, widget_item_data } from '../../../data/data';
 import { Attributes } from '../Attributes';
 import { tools } from '../../tools';
 import { ClientEvent } from '../../clientEvent';
 import { config } from '../../config';
+import { edit_event_more_item } from './edit_event_more_item';
 const { ccclass, property } = _decorator;
 
 @ccclass('event_stop_active_event')
@@ -11,6 +12,14 @@ export class event_stop_active_event extends Component {
     private m_data:event_stop_active_event_item = null;
     @property(Node) btn_select_ui:Node = null;
     @property(Node) lab_name:Node = null;
+    @property(Node) btn_more:Node = null;
+    @property(Node) content:Node = null;
+    @property(Prefab) item_more_prefab:Prefab = null;
+    protected start(): void {
+        this.btn_more.on(Node.EventType.TOUCH_END, ()=> {
+            this.onClickMoreBtn()
+        },this)
+    }
     public initView(data:event_stop_active_event_item){
         this.m_data = data;
         this.btn_select_ui.on(Node.EventType.TOUCH_END,()=>{
@@ -25,19 +34,76 @@ export class event_stop_active_event extends Component {
           
         })
         this.updateStatus()
+        this.updateMoreListStatus()
         ClientEvent.on(config.Event.UpdateAttributesToView,this.UpdateAttributesToView,this)
     }
     protected onDestroy(): void {
         ClientEvent.off(config.Event.UpdateAttributesToView,this.UpdateAttributesToView,this)
     }
     UpdateAttributesToView(data:attributes_data,update_type:string){
-        if(this.m_data.binding_widget_id===data.id&&update_type===config.attributes_list_type.delete){
-            this.m_data.binding_widget_id = -1;
-            this.updateStatus()
+        if(update_type===config.attributes_list_type.delete) {
+            if(this.m_data.binding_widget_id===data.id){
+                this.m_data.binding_widget_id = -1;
+                this.updateStatus()
+            }
+            let is_have = false
+            for(let i=0;i<this.m_data.binding_widget_list.length;i++) {
+                const element = this.m_data.binding_widget_list[i]
+                if(element.binding_widget_id===data.id) {
+                    element.binding_widget_id = -1;
+                    is_have = true
+                }
+            }
+            if(is_have) {
+                this.updateMoreListStatus()
+            }
         }
     }
     updateStatus(){
         this.lab_name.getComponent(Label).string =  this.m_data.binding_widget_id===-1?"当前选择停用激活的控件":`当前选择停用激活的控件id:${this.m_data.binding_widget_id}`
     }
+    onClickMoreBtn() {
+        let list =  Attributes.Singleton.get_cur_scene_all_only_widget()
+        if(list.length<=0){
+            return tools.showToast("当前场景没有添控件!")
+        }
+        tools.show_select_widget_list(list,(item:widget_item_data)=>{
+            if(item.att.id == this.m_data.binding_widget_id) {
+                return
+            }
+            var have_index:number = -1
+            for(let i=0; i<this.m_data.binding_widget_list.length; i++) {
+                const element = this.m_data.binding_widget_list[i]
+                
+                if(element.binding_widget_id == item.att.id) {
+                    have_index = i
+                    break
+                }
+            }
+            if(have_index!=-1) {
+                this.m_data.binding_widget_list.splice(have_index,1)
+            }
+            let more_item = new event_widget_more_event_item
+            more_item.binding_widget_id = item.att.id
+            more_item.binding_widget_remark = item.att.remark
+            this.m_data.binding_widget_list.push(more_item)
+            this.updateMoreListStatus()
+        },this.m_data.binding_widget_id)
+    }
+    updateMoreListStatus() {
+        if(this.m_data.binding_widget_list==undefined) {
+            this.m_data.binding_widget_list = []
+        }
+        this.content.removeAllChildren()
+        for(let index = 0; index < this.m_data.binding_widget_list.length; index ++) {
+            const element = this.m_data.binding_widget_list[index]
+            let item = instantiate(this.item_more_prefab);
+            item.parent = this.content;
+            item.getComponent(edit_event_more_item).initView(element, ()=>{
+                this.m_data.binding_widget_list.splice(index,1)
+                this.updateMoreListStatus()
+            })
+        }
+    }
 }
 

+ 21 - 0
assets/script/run/scene_page.ts

@@ -110,8 +110,29 @@ export class scene_page extends Component {
             }else{
                 tools.showToast("删除拖拽目标配置错误!")
             }
+        }else if(event.type===config.event_type.active_event) {
+            let data = event.event_item_active_event_data
+            this.eventBindingWidgetList(data, event) 
+        }else if(event.type===config.event_type.stop_active_event) {
+            let data = event.event_item_stop_active_event_data
+            this.eventBindingWidgetList(data, event) 
+        }else if(event.type===config.event_type.hide) {
+            let data = event.event_item_hide_data
+            this.eventBindingWidgetList(data, event)
         }
     }
+    eventBindingWidgetList(data, event:event_item) {
+        if(data!=null) {
+            for(let i=0;i<data.binding_widget_list.length;i++) {
+                const element = data.binding_widget_list[i]
+                let e_widget_id = element.binding_widget_id
+                let e_item = this.mWidgetList.get(e_widget_id)
+                if(e_item){
+                    e_item.getComponent(widget_base).beActive(e_widget_id,event)
+                }
+            }
+        }  
+    }
     on_zhao_bu_tong_finish(widget:zhao_xi_jie_item_data){
        let item =   this.mWidgetList.get(widget.widget_id)
        if(item===null){

+ 1 - 0
assets/script/run/widget/widget_base.ts

@@ -154,6 +154,7 @@ export class widget_base extends Component {
                     
                 break;
                 case config.event_type.stop_active_event: //停止激活
+                console.log('停止激活 停止激活')
                     this.mIsActive = false;
                 break;
                 // case config.event_type.collect_event: //自己被触发后,被收集类给收集

部分文件因为文件数量过多而无法显示