/****************************************************************** * Copyright(C) 2019 - 2020 Nx Studio * * 组件--本地化图片 * 1. 规范路径 * 2. 只支持SpriteFrame * 2018.05.18 ******************************************************************/ const CFG = require( "config" ); // 默认扩展目录 const DEF_FOLDER = "images/sma"; cc.Class( { extends: cc.Component, properties: { imgPath: { default : "", displayName : "扩展目录", }, }, // 编辑器特性 editor: { // 允许当前组件在编辑器模式下运行 executeInEditMode: false, // requireComponent 参数用来指定当前组件的依赖组件 requireComponent: cc.Sprite, // 当本组件添加到节点上后,禁止同类型(含子类)的组件再添加到同一个节点,防止逻辑发生冲突 disallowMultiple: false, // menu 用来将当前组件添加到组件菜单中,方便用户查找 menu: "Nx/本地化|图片", }, // 展示 onLoad: function() { // 默认语种不处理 if( nx.getLocLanguage() == CFG.DesignLanguage ) { return; } // 无效组件 let sprite = nx.gui.getComponent( this, "", cc.Sprite ); if( !sprite || !sprite.spriteFrame ) { return; } let name = sprite.spriteFrame.name; let fold = this.imgPath || DEF_FOLDER; let path = cc.path.join( "locals", nx.getLocLanguage(), fold, name ); path = path.replace( "//", "/" ); nx.gui.setSpriteFrame( this.node, "", path, ( _ret ) => { if( !_ret ) { nx.gui.setSpriteFrame( this.node, "", null ); } } ); }, } );