You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pythonista中Node.remove_action用法及停止节点指定动作的实现方法

Node.remove_action 正确使用方法

核心逻辑:要移除单个指定动作,必须在调用run_action()执行动作时为该动作绑定唯一标识key,后续通过key匹配移除对应动作。

报错原因说明

  • 你调用的remove_actions()方法不存在,Node节点移除全部动作的API是remove_all_actions(),方法名拼写错误触发了属性不存在的报错
  • 移除单个动作的API是remove_action(key),必须传入动作绑定的key参数才能生效

停止指定动作的实现方案

  1. 执行动作时指定唯一key
# 给移动动作绑定key为"move_action"
self.node.run_action(A.move_to(0,0,10), key="move_action")
  1. 需要停止时传入对应key调用移除方法
self.node.remove_action("move_action")

修改后的完整测试代码

import sound
import random
import math
A = Action

class MyScene (Scene):
    def setup(self):
        self.node = SpriteNode('emj:Alien',parent=self,position=(self.size.w,self.size.h))
        # 运行动作时指定唯一key
        self.node.run_action(A.move_to(0,0,10), key="alien_move")
    
    def did_change_size(self):
        pass
    
    def update(self):
        pass
    
    def touch_began(self, touch):
        # 传入对应key停止指定动作
        self.node.remove_action("alien_move")
    
    def touch_moved(self, touch):
        pass
    
    def touch_ended(self, touch):
        pass

if __name__ == '__main__':
    run(MyScene(), show_fps=False)

补充说明

  • 同一个key如果绑定新动作,会自动覆盖旧的同key动作,旧动作会直接停止
  • 如果传入的key没有对应正在运行的动作,调用remove_action()不会产生任何效果,也不会报错

内容的提问来源于stack exchange,提问作者Rog Kil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 16:54:02