future 1 년 전
부모
커밋
530b86bf1e
1개의 변경된 파일24개의 추가작업 그리고 19개의 파일을 삭제
  1. 24 19
      assets/script/run/scene_layer.ts

+ 24 - 19
assets/script/run/scene_layer.ts

@@ -14,7 +14,7 @@ export class scene_layer extends Component {
     @property(Prefab) scenePagePrefab:Prefab = null;
     @property(Node) scenePageDir:Node = null;
     protected mSceneTask:task_data = null;
-    private mTaskEventItemList:event_item[] = []
+    private mTaskEventItemList:Map<string,event_item> = new Map;
     protected mScenePages:scene_item_data[] =[]
     private mCurPage:number = 0;
     private mAudioList:Map<string,Node> = new Map;
@@ -36,6 +36,8 @@ export class scene_layer extends Component {
     public unInit(){
         this.content.destroyAllChildren()
         this.content.removeAllChildren()
+        this.mSceneTask = null
+        this.mTaskEventItemList.clear()
         this.mScenePages = []
         this.mCurPage = 0;
         this.mAudioList.clear()
@@ -180,23 +182,17 @@ export class scene_layer extends Component {
         }
         let cur_page = this.mCurPage
         let event_id = -1
-        for(let i = 0; i<this.mTaskEventItemList.length; i++) {
-            let element = this.mTaskEventItemList[i]
-            let element_switch_scene_event_data:event_item_switch_scene_event = element.event_item_switch_scene_event_data
-            if(element_switch_scene_event_data.binding_page_index == cur_page) {
-                if(isUp) {
-                    if(element_switch_scene_event_data.direction == config.switch_scene_page_direction.up || element_switch_scene_event_data.direction == config.switch_scene_page_direction.left) {
-                        event_id = element.event_id
-                        break
-                    }
-                } else {
-                    if(element_switch_scene_event_data.direction == config.switch_scene_page_direction.down || element_switch_scene_event_data.direction == config.switch_scene_page_direction.right) {
-                        event_id = element.event_id
-                        break
-                    }
-                }
-            }
+        var key = ''
+        if(isUp) { 
+            key = cur_page + '_up' 
+        } else {
+            key = cur_page + '_next' 
         }
+        let element = this.mTaskEventItemList.get(key)
+        if(element != null) {
+            event_id = element.event_id
+        }
+        // console.log('event_id event_id=',event_id)
         if(event_id != -1) {
             // 切换场景有延时0.7
             this.scheduleOnce(()=>{
@@ -211,8 +207,17 @@ export class scene_layer extends Component {
         }
         for(let i = 0; i < this.mSceneTask.event_list.length; i++) {
             let element:event_item = this.mSceneTask.event_list[i]
-            if(element.type == config.event_type.switch_scene_event && element.event_item_switch_scene_event_data != null) {
-                this.mTaskEventItemList.push(element)
+            let element_switch_scene_event_data:event_item_switch_scene_event = element.event_item_switch_scene_event_data
+            if(element.type == config.event_type.switch_scene_event && element_switch_scene_event_data != null) {
+                if(element_switch_scene_event_data.binding_page_index != -1 && element_switch_scene_event_data.direction != config.switch_scene_page_direction.unknown) {
+                    var key = ''
+                    if(element_switch_scene_event_data.direction == config.switch_scene_page_direction.up || element_switch_scene_event_data.direction == config.switch_scene_page_direction.left) {
+                        key = element_switch_scene_event_data.binding_page_index + '_up'
+                    } else {
+                        key = element_switch_scene_event_data.binding_page_index + '_next' 
+                    }
+                    this.mTaskEventItemList.set(key, element)
+                }
             }
         }
     }