Laya编辑器二次开发(三)扩展场景文件菜单增加定位功能

实际项目开发过程中,场景(.scene)文件以及图集、贴图资源等都会建一些文件夹进行模块化管理。

在编辑场景的时候,有时候需要在不同的目录来回跳转。依靠Laya编辑器下工程列表目录操作不便,

所以我们来扩展一下场景文件菜单,添加目录快捷跳转功能。

 

首先我们通过菜单中的内容来定位菜单的添加位置

 

在layabuilder.max.js中查找,发现内容位于UIPanel(编辑区分页管理器)类中。在initTabMenu中添加,

onEmunSelect中进行响应。

 

添加自定义的菜单及响应,进行测试

initTabMenu

//editor 场景文件菜单添加定位功能///

var menu=ContextMenu.createMenu("定位到common图集","关闭","关闭其他","关闭全部");

///


onEmunSelect

case "定位到common图集":

    console.log("点击定位到common图集菜单")

    break;

刷新编辑器后查看效果

可以看到菜单添加及响应都没有问题。

接下来我们来看定位功能的实现。

预设文件右键菜单中有一项定位预设的功能

 

通过关键字查找,可以查看到该功能的响应代码如下:

 

通过断点调试,发现pPath参数传入的值为从工程根目录起的相对目录。

 

我们在刚才新添加的菜单响应中添加如下代码:

case "定位到common图集":

    Notice.notify("SelecteResFile",["laya/assets/comp"]);

    break;

刷新编辑器进行测试。

 

到这里,定位特定目录的功能已经实现了。

 

有时候会同时打开比较多的场景或预设文件,所以也会有定位场景文件的需求,接下来我们

来实现特定场景文件的定位功能。

要跳转到打开场景的位置,首先要获取打开场景文件的文件目录。

通过简单阅读UIPanel类,发现维护了表示当前操作界面的变量_currViewer

我们在右键菜单的响应方法onEmunSelect中打断点来进行观察:

可以发现_curViewer中的_pagePath变量存储了当前操作对象的路径。

 

pagePath的值为绝对路径,但我们需要的是相对路径,通过编辑器启动时的打印内容,简单

的阅读上下文后,找到了一个包含工程路径的类SystemSetting。经过打印验证,可以知道SystemSetting中的

workPath中存储了工程目录。

 

我们按照之前的步骤添加新菜单及对应的响应代码

initTabMenu

//editor 场景文件菜单添加定位功能///

var menu=ContextMenu.createMenu("在工程列表中定位","定位到common图集","关闭","关闭其他","关闭全部");

///


onEmunSelect

case "在工程列表中定位":

    var filePath = this._currViewer.pagePath.replace(SystemSetting.workPath,"");

    Notice.notify("SelecteResFile",[filePath]);

    break;

刷新测试:

 

到这里,场景文件菜单中定位功能就扩展完成了

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值