msignal

A Haxe port of the ActionScript 3 Signals library that leverages Haxe type parameters. Supports AVM1, AVM2, JavaScript, Neko and C++.

  • 所有者: massive-oss/msignal
  • 平台:
  • 许可证: MIT License
  • 分类:
  • 主题:
  • 喜欢:
    0
      比较:

Github星跟踪图

Overview

Signals are highly scalable and lightweight alternative to Events.

msignal.Signal is a type safe port of Robert Penner’s AS3 Signals leveraging Haxe generics.

Benefits:

  • Avoids costly native event bubbling on different platforms (e.g. HTML DOM events) that impact performance
  • Type safe signature for dispatching and observer handlers
  • Typing excluded from output (lighter, cleaner code without compromising integrity)

You can download some examples of msignal usage here.

Importing

All required classes can be imported through msignal.Signal

import msignal.Signal;

Basic usage

var signal = new Signal0();
signal.add(function(){ trace("signal dispatched!"); })
signal.dispatch();

Extending

class MySignal extends Signal2<String, Int>
{
	public function new()
	{
		super();
	}
}

Typed parameters

var signal = new Signal1<String>();
signal.add(function(i:Int){}); // error: Int -> Void should be String -> Void
signal.dispatch(true) // error Bool should be String

Numbers of parameters:

var signal0 = new Signal0();
var signal1 = new Signal1<String>();
var signal2 = new Signal2<String, String>();

Slots:

var signal = new Signal0();
var slot = signal.add(function(){});
slot.enabled = false;
signal.dispatch(); // slot will not dispatch

Slot parameters:

var signal2 = new Signal2<String, String>();
var slot = signal.add(function(s1, s2){ trace(s1 + " " + s2); });
slot.param1 = "Goodbye";
signal.dispatch("Hello", "Mr Bond"); // traces: Goodbye Mr Bond

主要指标

概览
名称与所有者massive-oss/msignal
主编程语言Haxe
编程语言Haxe (语言数: 1)
平台
许可证MIT License
所有者活动
创建于2012-07-30 01:57:14
推送于2022-07-03 15:08:59
最后一次提交2018-12-26 17:59:31
发布数7
最新版本名称1.2.5 (发布于 )
第一版名称1.1.2 (发布于 )
用户参与
星数78
关注者数91
派生数26
提交数66
已启用问题?
问题数14
打开的问题数5
拉请求数4
打开的拉请求数1
关闭的拉请求数5
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?