《新·快闪编辑器》快速一览常用功能、自动修改import路径、拖拽资源到代码自动绑定关系

那大哥你试试。 :laughing:

谢谢反馈,我试试快速保存能不能重现

https://microsoft.github.io/monaco-editor/

再来一个小问题,我代码比较奔放,有大量中文。但是现在有点辣眼睛,不知是否可以和VSCode一致。这个彩色中文有点刺眼。

VSCode如下
image

大佬插件如下
image

我已经改了Bold大小了。就是颜色不知咋改。

好,正则匹配问题

您可太优秀了~

大哥,不准鄙视,不管黑猫白猫,我宁愿数着钱笑,也不愿意守着代码规范哭。

谢谢
有个问题想问下不知能否解答
鼠标拖动资源时没放手通过 Editor.Selection.curSelection(‘node’) 获取不到当前拖动的node
有办法解决吗?

您这边是拖动的资源还是节点?

都一样,要放手后才能获取选中的资源

大佬,点选一个cc.Button节点,能否自动打开它的ClickEvent[0]对应的响应脚本,并定位到对应的响应函数附近?我个人认为这个是高频有用操作。

如果该节点同事也加入了自定义组件脚本,现状是会自动打开这个自定义组件脚本。和上面的设想冲突。

故可以考虑 alt + 点击触发或者右键菜单触发。

喝茶 :tea: :tea: :tea:

感觉很少有人在编辑器里绑定事件函数

2赞

大佬,这拖拽问题涉及到Creator编辑器内部,个人真的没法解决,求指导

图片显示鼠标没有点击选取node前直接拖拽 Editor.Selection.curSelection(‘node’) == null
desc_10

拽事件监听方法是这样写的

this.$editorB.addEventListener('drop',(e)=>{
       // 鼠标直接拖拽时 nodeUuid  == null, 需要点击一下Node再拖才能获取到 nodeUuid
	let nodeUuid = Editor.Selection.curSelection(‘node’)
},false);

麻烦大佬解惑一下如何获得 拖拽的node对象uuid

可以告诉我 ui-node 控件是怎么实现获取当前拖拽的 node uuid的吗
我尝试去模拟实现
desc_10

您好,我们这边的编辑器开发说这是正常情况。在编辑器中拖拽的状态不等同于选中,这时候拖拽结束后松开就是未选中了。

谢谢大佬解惑,刚刚顺着回调找到监听node拖拽事件的方法了

Electron.ipcRendere.on("editor:dragstart", (e, t) = >{
            _dragging = !0,
            _type = t.type,
            _items = t.items,
            _options = t.options
        }),
1赞

更新了两点可以试试:
修复拖动需要点击一次的问题
代码变量颜色匹配中文

1赞

大神,你的修改生效了。

另外这个问题,我这加了点代码调试通过了,请大佬参考一下。

增加的代码在下面这个函数中

getJsFileList(node){

        if(!node) {return []};

        let list = [];      

        node.getComponents(cc.Component).forEach((v)=>{

            if(v.__classname__ && v.__classname__.indexOf(".") == -1) list.push(v);       //js脚本

        });

        {//打开cc.Button的响应脚本

            let button = node.getComponent(cc.Button);

            if(button && button.clickEvents && button.clickEvents.length)

            {

                for(let myeee of button.clickEvents)

                {

                    if(!myeee)

                        continue;

                    let buttonTargetNode = myeee.target;

                    if(buttonTargetNode)

                    {

                        let comps = buttonTargetNode.getComponents(cc.Component);

                        if(comps && comps.length)

                        {

                            for(let comp of comps)

                            {

                                if(comp.__classname__ === myeee._componentName || comp.__classname__ === myeee.component)

                                {

                                    if(comp.__classname__ && comp.__classname__.indexOf(".") == -1) list.push(comp);

                                }

                            }

                        }

                    }

                }

            }

        }//end 打开cc.Button的响应脚本

        return list;

    },

可以,你都写的差不多了

老板,你这个TS按需import有点不如意。好像你有一个缓存列表,打开过才能记住和提示。

设定有两个目标

  • 启动simple-code面板快(不能用那个js的全部导入配置,实在太慢了)
  • TS能自动提示工程里面的没有打开过的TS类型。node_modules里面的不管。

为同时实现这两个目标,可以考虑和vscode的ts工程一样,导入es5.d.ts,dom.d.ts之类的之后,扫描Creator工程,凡是.d.ts和.ts的都自动加入列表,js的不管,也许就不会出现尴尬的不回提示导入用户自定义的TS类。