|
@@ -1,10 +1,11 @@
|
|
|
import { _decorator, AudioSource, Component, instantiate, Node, Prefab, Widget } from 'cc';
|
|
|
-import { event_item, scene_item_data } from '../../data/data';
|
|
|
+import { event_item, event_item_switch_scene_event, scene_item_data, task_data } from '../../data/data';
|
|
|
import { scene_page } from './scene_page';
|
|
|
import { scene_page_dir } from './scene_page_dir';
|
|
|
import { ClientEvent } from '../clientEvent';
|
|
|
import { config } from '../config';
|
|
|
import { gameManager } from './gameManager';
|
|
|
+import { taskServce } from './TaskSchedule/taskServce';
|
|
|
const { ccclass, property } = _decorator;
|
|
|
|
|
|
@ccclass('scene_layer')
|
|
@@ -12,12 +13,19 @@ export class scene_layer extends Component {
|
|
|
@property(Node) content:Node = null;
|
|
|
@property(Prefab) scenePagePrefab:Prefab = null;
|
|
|
@property(Node) scenePageDir:Node = null;
|
|
|
+ protected mSceneTask:task_data = null;
|
|
|
+ private mTaskEventItemList:event_item[] = []
|
|
|
protected mScenePages:scene_item_data[] =[]
|
|
|
private mCurPage:number = 0;
|
|
|
private mAudioList:Map<string,Node> = new Map;
|
|
|
protected start(): void {
|
|
|
this.node.addComponent(AudioSource)
|
|
|
}
|
|
|
+ public initSceneTask(data:task_data) {
|
|
|
+ this.mSceneTask = data
|
|
|
+ this.getTaskSwitchSceneEventList()
|
|
|
+ }
|
|
|
+
|
|
|
public initScene(pages:scene_item_data[],type:number){
|
|
|
ClientEvent.on(config.EventRun.NOTICE_EVENT,this.beActive.bind(this),this)
|
|
|
this.mScenePages = pages;
|
|
@@ -147,27 +155,68 @@ export class scene_layer extends Component {
|
|
|
}
|
|
|
|
|
|
onUp(){
|
|
|
- let cur_page = this.mCurPage
|
|
|
let up_page = this.mCurPage -1;
|
|
|
if(up_page>=0){
|
|
|
+ this.onClickCurPageDirectionButton(true)
|
|
|
gameManager.Singleton.onLaunch(()=>{
|
|
|
this.changePage(up_page)
|
|
|
- // ClientEvent.dispatchEvent(config.EventRun.MORE_SCENE_DIRECTION_CLICK_FINISH, cur_page, up_page, true)
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
|
|
|
onNext(){
|
|
|
- let cur_page = this.mCurPage
|
|
|
let next_page = this.mCurPage +1;
|
|
|
if(next_page<this.mScenePages.length){
|
|
|
+ this.onClickCurPageDirectionButton(false)
|
|
|
gameManager.Singleton.onLaunch(()=>{
|
|
|
this.changePage(next_page)
|
|
|
- // ClientEvent.dispatchEvent(config.EventRun.MORE_SCENE_DIRECTION_CLICK_FINISH, cur_page, next_page, true)
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ onClickCurPageDirectionButton(isUp:boolean) {
|
|
|
+ if(this.mSceneTask == null) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ 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
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(event_id != -1) {
|
|
|
+ // 切换场景有延时0.7
|
|
|
+ this.scheduleOnce(()=>{
|
|
|
+ ClientEvent.dispatchEvent(config.EventRun.MORE_SCENE_DIRECTION_BUTTON_CLICK_FINISH, event_id)
|
|
|
+ },0.7)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ getTaskSwitchSceneEventList() {
|
|
|
+ if(this.mSceneTask == null) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ 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)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
initSceneDir(type:number){
|
|
|
if(this.mScenePages.length>1){
|
|
|
this.scenePageDir.getComponent(scene_page_dir).initView(type,this.onUp.bind(this),this.onNext.bind(this))
|