cocos creator2.4.6怎么添加一个通用的base.js的,能达到mixin的效果

想把类似下面的方法用一个完整的js文件存着,生成一个base.js文件,游戏最先引入这个base.js。之后的main.js里,可以直接使用this.printNode(xxx,xx);this.shakeAnim(node,x,y)这样的方式来使用,类似vue里面的mixin效果。但目前这么用,在mian.js里调不到base.js,请问还需要怎么设置才行?

注:项目里没有使用ts,无法使用继承

printNode(key, parent, x, y, imgname, obj) {
let node = new cc.Node(key)
node.x = x
node.y = y
if (!!imgname) {
this.printSingleImg(node, imgname, obj)
}
parent.addChild(node)
return node
},
printLabel(key, parent, x, y, config) {
let node = new cc.Node(key)
node.x = x
node.y = y
node.color = cc.color(config.color)
if (config.text !== ‘’) {
var sp = node.addComponent(cc.Label)
sp.string = config.text || ‘’
sp.enableBold = config.bold || false
sp.fontSize = config.size || 40
sp.lineHeight = config.size || 40
}
parent.addChild(node)
return node
},
printWordLayout(key, parent, imgname) {
let node = new cc.Node(key)
if (!!imgname) {
this.printSingleImg(node, imgname)
}
const layout = node.addComponent(cc.Layout)
layout.resizeMode = “CONTAINER”
layout.paddingLeft = 22
layout.paddingRight = 22
parent.addChild(node)
return node
},
shakeAnim(node, x, y, times) {
const a1 = cc.moveBy(0.05, +x, +y);
const a2 = cc.moveBy(0.05, -x, -y);
node.runAction(cc.repeat(cc.sequence(a1, a2), times))
}

参考:TS怎么导入js脚本 cocos creator3.2版本

直接挂载在window上不就完事了
class base{
//所有方法
}
module.exports = window.base= base;
要用的地方直接base.XXX

要么按楼上的写法挂window
要么引入文件 然后生产对应的.d.ts文件 然后导入 就是我上面发的参考:TS怎么导入js脚本 cocos creator3.2版本

这样太粗暴了吧 :smiley:

js本来就是这样用的啊。