-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Listeners and Utils debug/err/warning added #2
- Loading branch information
Leonid
committed
Aug 15, 2021
1 parent
470daa6
commit ba8b9a7
Showing
5 changed files
with
81 additions
and
32 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 not shown.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | ||
} */ | ||
} |