future 1 yıl önce
ebeveyn
işleme
429dbc3ee1

+ 1 - 0
assets/data/data.ts

@@ -83,6 +83,7 @@ export class att_drag_data{
     public is_err_drag_back:boolean = true; //拖拽错误是否回归原位
     public other_drag_list:att_drag_data[] = [];
     public other_widget_finish_listen_list:other_widget_finish_listen_item[] = [];
+    public index:number = -1; //当前索引
 }
 
 export class other_widget_finish_listen_item{

+ 10 - 20
assets/script/run/scene_page.ts

@@ -136,30 +136,20 @@ export class scene_page extends Component {
             }
         } else {
             let data_list:event_item_delete_drag_other[] = JSON.parse(JSON.stringify(other_widget_list))
-            let first_data = new event_item_delete_drag_other
-            first_data.widget_id = wd
-            first_data.delete_drag_other_index = index
-            data_list.unshift(first_data)
-            var data_map:Map<number,number> = new Map;
+            if(wd!=-1) {
+                let first_data = new event_item_delete_drag_other
+                first_data.widget_id = wd
+                first_data.delete_drag_other_index = index
+                data_list.unshift(first_data)
+            }
+
             for(let i=0;i<data_list.length;i++) {
                 const element = data_list[i]
                 let wd = element.widget_id
                 let index = element.delete_drag_other_index
-                if(index!=-1) {
-                    let e_item = this.mWidgetList.get(wd)
-                    if(e_item){
-                        let minus_index = 0
-                        if(data_map.get(wd)==null) {
-                            data_map.set(wd,0)
-                        } else {
-                            let v = data_map.get(wd)
-                            minus_index = v+1
-                            data_map.set(wd,minus_index)
-                        }
-                        // console.log('minus_index=',minus_index)
-                        let c_index = index - minus_index
-                        e_item.getComponent(widget_drag).deleteOtherDrag(c_index)
-                    }
+                let item = this.mWidgetList.get(wd)
+                if(item) {
+                    item.getComponent(widget_drag).deleteOtherDrag(index)
                 }
             }
         }

+ 9 - 1
assets/script/run/widget/widget_drag.ts

@@ -21,6 +21,7 @@ export class widget_drag extends widget_base {
             for (let index = 0; index <  this.mData.att.drag_data.other_drag_list.length; index++) {
                 const element =  this.mData.att.drag_data.other_drag_list[index];
                 let item = new att_drag_data;
+                item.index = index;
                 item.drag_pos_x = element.drag_pos_x;
                 item.drag_pos_y = element.drag_pos_y;
                 item.other_event_id = element.other_event_id;
@@ -124,7 +125,14 @@ export class widget_drag extends widget_base {
     }
 
     public deleteOtherDrag(index:number){
-        this.other_drag_list.splice(index,1)
+        // this.other_drag_list.splice(index,1)
+        for (let i = 0; i < this.other_drag_list.length; i++) {
+            const element = this.other_drag_list[i];
+            if(element.index==index) {
+                this.other_drag_list.splice(i,1)
+                break
+            }
+        }
     }
 
     private checkOnecFinish(){