07-1 信号初步
应邀,应邀,咱们先跳过“组”,来直接讲“信号”:
信号的实质就是:根据信息做出不同的行为
首先,创造一个如下场景:
(我们想要实现的效果是:按下按钮时lab的文本发生变化)
先连接信号,官方给出的连接信号的方法是:
选中节点,再在右边添加信号
添加到lab:
但我可以很负责地告诉你:这是“多余”的!
连接信号只要懂connect()方法就行!
我们来了解一下connect()方法:
connect()可以写入5个参数,其中有3个是必填的(这节课先弄懂这3个参数):
connect(<signal_name>, <target_node>, <target_function_name>)
<signal_name>:信号名,可以是内置的,也可以是自定义的(下节课再讲自定义信号)
<target_node>:可以理解为“查找域”(脚本)
<target_function_name>:所要调用的函数名
举个例子:(当按钮按下时lab的文本变为new)
解析:
首先,事件是“按钮按下”,而此脚本是lab的,所以先要用get_node()获取按钮
获取到按钮后用connect()绑定:
"pressed":内置信号,在按钮按下时发出
(注:节点拥有的所有信号你都可以在信号面板中找到,即第二张图所示)
self:关键字,可以理解为在当前脚本中寻找执行
"try":所要执行的函数的函数名
我们来理解一下<target_node>:
硬说你们肯定半知半解,我们来看一个例子:
现在我们把lab的脚本写成这样:
我在Button的脚本下写:
按钮按下时调用这个函数,该怎么办呢?很简单:
你只要获取lab就可以了,这就意味着“try”是在Button的父节点lab中查找的了
这就是信号的初步使用,赶快去试试吧(*^▽^*)
(下节课再讲自定义信号及其传入参数)
应邀,应邀,咱们先跳过“组”,来直接讲“信号”:
信号的实质就是:根据信息做出不同的行为
首先,创造一个如下场景:
(我们想要实现的效果是:按下按钮时lab的文本发生变化)
先连接信号,官方给出的连接信号的方法是:
选中节点,再在右边添加信号
添加到lab:
但我可以很负责地告诉你:这是“多余”的!
连接信号只要懂connect()方法就行!
我们来了解一下connect()方法:
connect()可以写入5个参数,其中有3个是必填的(这节课先弄懂这3个参数):
connect(<signal_name>, <target_node>, <target_function_name>)
<signal_name>:信号名,可以是内置的,也可以是自定义的(下节课再讲自定义信号)
<target_node>:可以理解为“查找域”(脚本)
<target_function_name>:所要调用的函数名
举个例子:(当按钮按下时lab的文本变为new)
解析:
首先,事件是“按钮按下”,而此脚本是lab的,所以先要用get_node()获取按钮
获取到按钮后用connect()绑定:
"pressed":内置信号,在按钮按下时发出
(注:节点拥有的所有信号你都可以在信号面板中找到,即第二张图所示)
self:关键字,可以理解为在当前脚本中寻找执行
"try":所要执行的函数的函数名
我们来理解一下<target_node>:
硬说你们肯定半知半解,我们来看一个例子:
现在我们把lab的脚本写成这样:
我在Button的脚本下写:
按钮按下时调用这个函数,该怎么办呢?很简单:
你只要获取lab就可以了,这就意味着“try”是在Button的父节点lab中查找的了
这就是信号的初步使用,赶快去试试吧(*^▽^*)
(下节课再讲自定义信号及其传入参数)