美文网首页
自定义节点事件模块

自定义节点事件模块

作者: Qkuang | 来源:发表于2020-01-19 15:50 被阅读0次

IFramework所有模块总目录

简介

此模块是在 “自定义协程模块”之上,做的一个拓展。运用“链式结构”让事件事件得以按指定顺序调用。

自定义事件模块简单使用

代码如下:

using System;
using IFramework;
using IFramework.Moudles.Coroutine;
using IFramework.Moudles.NodeAction;
using UnityEngine;

public class TestEvent : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        // 初始化
        Framework.Init();
        //协程模块初始化
        Framework.moudles.Coroutine = Framework.moudles.CreateMoudle<CoroutineMoudle>();
        // 主要对象:序列节点(SequenceNode)、重做节点(RepeatNode)
        // 操作:序列节点——重做 、 重做节点——序列

        this.Sequence()         
             .Repeat((r) =>
             {
                 r.Sequence((s) =>
                 {
                     s.TimeSpan(new TimeSpan(0, 0, 3), false)   //间隔3秒
                      .Event(() => { Log.L("事件1"); }, false)
                      .TimeSpan(new TimeSpan(0,0,2),false)          //间隔2秒
                      .Event(()=>{Debug.Log("事件2");},false)      
                      .OnCompelete(() => { Log.L("完成"); })        //最终事件调用。
                      .Event(()=>{Debug.Log("事件3");},false);
                 }, false)
                 ;
             }, 2, false)           //重做次数:2
             .TimeSpan(new TimeSpan(0, 0, 3), false)    
             .OnCompelete((ss) => { /*ss.Reset();*/ })
             .OnDispose((ss) => { Log.L("销毁"); })
             .Run(Framework.moudles.Coroutine as CoroutineMoudle);  //在协程模块运行
    }
    private void Update()
    {
        Framework.Update();
    }
    private void OnDestroy()
    {
        Framework.Dispose();
    }
}

输出结果如下:


image.png

主要注意:

事件3 的输出顺序。
事件2的输出时间间隔

解析

  • 主要类:SequenceNode、RepeatNode
  • SequenceNode 包括如下操作:设置 时间间隔、设置事件(可多次)、设置完结事件、设置销毁事件、设置运行协程模块、重做(可设置重复次数)
  • RepeatNode 操作只有一个:获取 SequenceNode。
  • 这些节点有一个共同的属性,是否自动dispose
    其他节点无所谓,Repeat节点内部的节点一定不能让其自动回收,否则会产生空引用问题
    只要在最外面的节点方法内调用dispose,内部的都会dispose

结尾

以上内容是 作者个人的理解,如有错误,欢迎指出。
顺便给出OnClick大佬自己 写的文档地址:009 自定义节点事件模块
如果对 IF框架有其他看法,也欢迎大家 进群交流。

相关文章

  • 自定义节点事件模块

    介绍 此模块是基于 自定义携程模块的该模块的特色是链式编写包含的节点有 实例 运行结果 注意点 这些节点有一个共...

  • 自定义节点事件模块

    IFramework所有模块总目录 简介 此模块是在 “自定义协程模块”之上,做的一个拓展。运用“链式结构”让事件...

  • 前端(十七)

    事件冒泡 鼠标移入移出 input框事件 jQuery其他事件 绑定事件bind 自定义事件 事件委托 节点操作

  • 前端笔记(16)

    代码:1.jQuery其他事件 2.绑定事件bind 3.自定义事件 4.事件冒泡 5.节点操作

  • 第9章-Spring的事件机制

    Spring 容器提供了事件管理机制,Spring 容器内部很多节点都会发布事件,也支持自定义事件。 一、事件机制...

  • JTree

    简单的显示 编辑JTree //给JTree节点事件监听 设置图标个性化统一设置 自定义设置外观 自定义重写

  • JQuery自定义事件,事件冒泡,节点

    /单次绑定事件/.fn.bindOne = function (eventName, fn, childEle) ...

  • jQuery自定义事件,事件冒泡,节点

    主动触发与自定义事件 主动触发 使用jquery对象上的trigger方法来触发对象上绑定的事件。 自定义事件 除...

  • JQuery自定义事件,事件冒泡,节点

    /单次绑定事件/.fn.bindOne = function (eventName, fn, childEle) ...

  • 【RN】ReactNative与原生交互之Android篇

    一、自定义原生模块 创建自定义模块注册自定义模块在RN中使用自定义模块获取原生模块预设常量值导出带参函数方法导出带...

网友评论

      本文标题:自定义节点事件模块

      本文链接:https://www.haomeiwen.com/subject/qpvrzctx.html