Skip to content

Commit

Permalink
Listeners and Utils debug/err/warning added #2
Browse files Browse the repository at this point in the history
  • Loading branch information
Leonid committed Aug 15, 2021
1 parent 470daa6 commit ba8b9a7
Show file tree
Hide file tree
Showing 5 changed files with 81 additions and 32 deletions.
29 changes: 17 additions & 12 deletions Source/Listener.as
Original file line number Diff line number Diff line change
@@ -1,23 +1,28 @@
class Listener {
static function helloWorld() {
trace("Hello, world!");
}
static function mkListenerHandler(obj: MovieClip) {
obj.listeners = new Array()
obj.mkListener = function(listener: Function) {
obj.listeners.push(listener)
static function mkListenerHandler(obj: MovieClip, types: Array) {
Utils.debug(arguments)
/* Utils.debug("Listener::mkListenerHandler", "obj = " + obj._name + "; types = " + types) */
obj.mkListener = function(type: String, listener: Function) {
Utils.assertDefined(obj, type + "Listeners")
obj[type + "Listeners"].push(listener)
}
obj.onEnterFrame = function() {
for (var i in obj.listeners)
obj.listeners[i](obj)

for (var i in types) {
var type = types[i]
obj[type + "Listeners"] = new Array()
obj[type] = function() {
for (var j in obj[type + "Listeners"])
obj[type + "Listeners"][j](obj)
}
}
}
static function spinRight(mc: MovieClip) {
mc._rotation++
}
static function main() {
mkListenerHandler(_root.b)
Utils.debug(arguments)
mkListenerHandler(_root.b, new Array("onEnterFrame"))

_root.b.mkListener(spinRight)
_root.b.mkListener("onEnterFrame", spinRight)
}
}
Binary file modified Source/Prototype.fla
Binary file not shown.
20 changes: 0 additions & 20 deletions Source/State.as

This file was deleted.

10 changes: 10 additions & 0 deletions Source/Unit.as
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
class Unit {
static function init(obj: Object) {
obj.ini = 0
obj.end = 5
obj.poi = 0
obj.ddg = 0
obj.att = 0
obj.def = 0
}
}
54 changes: 54 additions & 0 deletions Source/Utils.as
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
class Utils {
static function assert(bool: Boolean) {
if (bool)
return
error("Assert failed in " + nameOf(arguments.caller) + "!")
}
static function assertDefined(obj: Object, member: String) {
if (eval(String(obj) + "." + member) != undefined)
return
error("Assert failed in " + nameOf(arguments.caller) + " " + member + "is not member of " + obj._name + "!")
}
static function valueOr(maybeValue, defaultValue) {
return maybeValue == undefined ? defaultValue : maybeValue
}
static function debug(args: Object, msg) {
trace(nameOf(args.callee) + ": " + args + " " + valueOr(msg, ""))
}
static function warning(msg: String) {
trace("ERROR: " + msg)
}
static function error(msg: String) {
trace("ERROR: " + msg)
}
static var functionNameContexts = new Array(
Listener, Utils)
static function nameOf(func:Function): String {
for (var i in functionNameContexts) {
var obj: Function = functionNameContexts[i]
for (var prop in obj) {
if (functionNameContexts[i][prop] == func)
return prop;
}
}
return "anonymous function";
}
/* static function run() {
_root.createEmptyMovieClip("target_mc", _root.getNextHighestDepth());
loadVariables("params.txt", _root.target_mc);
function checkParamsLoaded() {
if (_root.target_mc.done == undefined) {
trace("not yet.");
} else {
trace("finished loading. killing interval.");
trace("-------------");
for (var i in _root.target_mc) {
trace(i+": "+_root.target_mc[i]);
}
trace("-------------");
clearInterval(param_interval);
}
}
var param_interval: Number = setInterval(checkParamsLoaded, 100);
} */
}

0 comments on commit ba8b9a7

Please sign in to comment.