123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- import { _decorator, Button, Component, instantiate, Node, Prefab } from 'cc';
- import { config } from '../../config';
- import { add_animation_item } from './add_animation_item';
- import { att_ani_data } from '../../../data/data';
- import { Attributes } from '../Attributes';
- import { tools } from '../../tools';
- import { new_animation } from './new_animation';
- import { edit_animation } from './edit_animation';
- const { ccclass, property } = _decorator;
- @ccclass('add_animation')
- export class add_animation extends Component {
- @property(Node) content:Node = null;
- @property(Node) btn_close:Node = null;
- @property(Prefab) item_prefab:Prefab = null;
- @property(Node) btn_add_animation:Node = null;
- @property(Node) btn_delete_animation:Node = null;
- @property(Node) btn_edit_animation:Node = null;
- @property(Node) btn_select_server_animation:Node = null;
- @property(Node) btn_set_server_animation:Node = null;
- @property(Node) new_animation_node:Node = null;
- @property(Node) edit_animation_node:Node = null;
- private call_back = null;
- private m_list:att_ani_data[] = []
- private cur_select:add_animation_item = null;
- public show(list:att_ani_data[],call){
- this.call_back = call;
- this.m_list = list;
- this.updateView()
- this.btn_close.on(Node.EventType.TOUCH_END,()=>{
- this.close()
- })
- this.btn_edit_animation.on(Node.EventType.TOUCH_END,()=>{
- if(this.m_list.length<=0){
- return tools.showToast("无动画可编辑!")
- }
- this.edit_animation_node.getComponent(edit_animation).show(this.cur_select.getData())
- })
- this.new_animation_node.getComponent(new_animation).initView(this.onCreateAni.bind(this))
- this.btn_add_animation.on(Node.EventType.TOUCH_END,()=>{
- this.new_animation_node.getComponent(new_animation).show(this.m_list.length, Attributes.Singleton.get_cur_att_data().id)
- })
- this.btn_delete_animation.on(Node.EventType.TOUCH_END,()=>{
- if(this.m_list.length<=0){
- return tools.showToast("无动画可删除!")
- }
- tools.show_dialog("是否删除当前选中的动画?",()=>{
- this.m_list.splice(this.cur_select.getIndex(),1)
- this.updateView()
- // this.cur_select.node.removeFromParent()
- // if(this.m_list.length<=0){
- // this.btn_delete_animation.getComponent(Button).interactable = false;
- // }else{
- // this.cur_select = this.content.children[this.content.children.length-1].getComponent(add_animation_item)
- // this.cur_select.selectStatus()
- // }
- if(this.call_back!=null){
- this.call_back(this.m_list)
- }
- })
- })
- this.btn_edit_animation.getComponent(Button).interactable = list.length<=0?false:true
- this.btn_delete_animation.getComponent(Button).interactable = list.length<=0?false:true
- this.btn_select_server_animation.on(Node.EventType.TOUCH_END, ()=>{
- tools.requestGetAnimationList((ani_list)=>{
- if(ani_list.length==0) {
- return tools.showToast('服务器还没有动画列表')
- }
- tools.show_select_animation_delete_list(ani_list,(item:att_ani_data)=>{
- if(this.m_list.length>0) {
- let end_item = this.m_list[this.m_list.length-1]
- item.ani_id = end_item.ani_id + 1
- }
- this.onCreateAni(item)
- })
- })
- })
- this.btn_set_server_animation.on(Node.EventType.TOUCH_END, ()=>{
- if(this.cur_select==null) {
- return tools.showToast('还没有动画')
- }
- let cur_data = this.cur_select.getData()
- if(cur_data==null) {
- return tools.showToast('请选择当前的动画')
- }
- tools.requestAddAnimationToAnimationList(cur_data)
- })
- }
- updateView(){
- this.content.removeAllChildren()
- for (let index = 0; index < this.m_list.length; index++) {
- const element = this.m_list[index];
- let item = instantiate(this.item_prefab)
- item.parent = this.content;
- item.getComponent(add_animation_item).initView(element,this.onItemClick.bind(this),index)
- if(index===0){
- item.getComponent(add_animation_item).selectStatus()
- this.cur_select = item.getComponent(add_animation_item);
- }
- }
- }
- onCreateAni(d:att_ani_data){
- this.m_list.push(d)
- this.updateView()
- this.btn_edit_animation.getComponent(Button).interactable = this.m_list.length<=0?false:true
- this.btn_delete_animation.getComponent(Button).interactable = this.m_list.length<=0?false:true
- if(this.call_back!=null){
- this.call_back(this.m_list)
- }
- }
- onItemClick(item:add_animation_item){
- for (let index = 0; index < this.content.children.length; index++) {
- const element = this.content.children[index];
- element.getComponent(add_animation_item).unSelectStatus()
- }
- item.selectStatus()
- this.cur_select = item;
- this.btn_edit_animation.getComponent(Button).interactable = true;
- this.btn_delete_animation.getComponent(Button).interactable = true
- }
- close(){
- this.node.destroy()
- }
- }
|