デリゲーとっぽいの
変数の名前が変なのは気にしないでください
♥0 |
Line 38 |
Modified 2011-05-07 16:12:47 |
MIT License
archived:2017-03-20 14:57:21
ActionScript3 source code
/**
* Copyright 3f5 ( http://wonderfl.net/user/3f5 )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/br3a
*/
package {
import flash.text.TextField;
import flash.display.Sprite;
public class DelegateTest extends Sprite {
public function DelegateTest() {
var delegate:Delegate = new Delegate();
delegate.add('Test', function (str:String):void {
var text:TextField = new TextField();
text.text = str;
addChild(text);
});
delegate.call('Test', 'Hello World');
}
}
}
class Delegate
{
private var callbacks:Object;
public function Delegate()
{
callbacks = {};
}
public function add(delegateName:String, callback:Function):void
{
if (!callbacks.hasOwnProperty(delegateName)) {
callbacks[delegateName] = [];
}
callbacks[delegateName].push(callback);
}
public function call(delegateName:String, ...args):void
{
if (!callbacks.hasOwnProperty(delegateName)) return;
var callback:Function;
for each (callback in callbacks[delegateName]) {
callback(args);
}
}
}