我要吐了调用另一个节点的函数就是不能用,说是not a function

我要吐了调用另一个节点的函数怎么这么恶心,死活不能用
说change_shu_scale不是个函数 :bomb: :bomb: :bomb: :bomb: :bomb: :bomb: :bomb: :bomb: :bomb:


shu_script.js
cc.Class({

extends: cc.Component,

properties: {

},

change_shu_scale:function(){

    console.log("NMB");

    // this.node.scale = sc;

},

// LIFE-CYCLE CALLBACKS:

// onLoad () {},

start () {

},

// update (dt) {},

});
men_script.js
onLoad () {
var shu = require(“shu_script”);
shu.change_shu_scale(0.5);
}

你可以去翻翻官方文档~~

用引擎之前先看文档,或者看一些demo是怎么写的

1赞

https://docs.cocos.com/creator/manual/zh/scripting/use-component.html
https://docs.cocos.com/creator/manual/zh/scripting/access-node-component.html
你看下上面两个链接

这个 是你自己的问题

解决问题了,在qq群里问了大佬,直接就是一手全局变量 window[‘shu’] = this;

用这种奇奇怪怪的做法只会害了你。

你有这个疑问可以看出来你对“类”和“对象”都还没分得清,建议先补一下OOP编程基础。

正确做法
1.如果这是个node的绑定类,先取到这个node,再getComponent取得这个script对象,就可以调了。
2.如果这只是个存粹的类,require进来后,new程一个对象,再调用。

1赞

大佬,你这么一讲我就明白了,我一直以为节点和上面挂的脚本是一个东西,所以一直找不到,现在终于解决了,昨天开始学cocos,结果搞这个搞了昨天一下午和今天一上午,人都要疯了。感谢大佬指点迷津!
调用节点:shu_player: {
default: null,
type: cc.Node
}
节点中找脚本组件:this.shu_player.getComponent(“shu_script”).change_shu_scale(sc/2);
完美解决。

图片
这里是继承的component,如果是纯js文件,就可以用module.export导出其他地方直接require来使用

明白了,感谢大佬!

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。