From ba8b9a7abf71ed9072abe4a00071937a540451b4 Mon Sep 17 00:00:00 2001 From: Leonid Date: Sun, 15 Aug 2021 13:51:08 +0300 Subject: [PATCH] Listeners and Utils debug/err/warning added #2 --- Source/Listener.as | 29 +++++++++++++---------- Source/Prototype.fla | Bin 49152 -> 49152 bytes Source/State.as | 20 ---------------- Source/Unit.as | 10 ++++++++ Source/Utils.as | 54 +++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 81 insertions(+), 32 deletions(-) delete mode 100644 Source/State.as create mode 100644 Source/Unit.as create mode 100644 Source/Utils.as diff --git a/Source/Listener.as b/Source/Listener.as index 4b2ccef..9b13e84 100644 --- a/Source/Listener.as +++ b/Source/Listener.as @@ -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) } } diff --git a/Source/Prototype.fla b/Source/Prototype.fla index eed568a5113f3bfea7a28d2c3928d750ce2fda91..6b56b86b0a0db3f60bb1a1f658286566bbffd3b4 100644 GIT binary patch delta 1433 zcmX|BYfMvT80M5(fk97?gi?j}w9p%Ep)KtwD708x1j21)X|*sYwIVR2TxO7RtAfiC zvx_{2EM~~YpIsaQX@Wl%MHAze{TOapG&3Q%Wk2Q?L$)7Fwq;{q&)I15=KW4jzxREf z=Y8JBN^&M7}24WloUxyijX9V#6P>cyCiYvgf(N8niKSkCBG^zC9XWC_K_FW zBE$qSk&ztzUi>MT65J6cVyRjxvxt0UAdxJAPla#fyhI+zdGF&R&#mYZ-&zxygfNNi ziHP_;>PkqsmYJZC$Z1>>d*-C9z}K5lNw+CF2_o%(V0F?2ExAfjG^9QSdSH01 z?MKM>YGU(%m70^S2%bJl+?0JTz-oRyx=B3nAI7_38r!TAS@|sbf;2iECN%nu(4I76 zS0Tp$$+t+pYoRfHCLhg~LP!)Pcqp&Nl)M#Rvn7c3GLWfl*wCk8Gmwto+T0MSe0Y7@ z3R;_nXG%Hh+pM^()F30wU^A$}L-u9pgKo->p_y{*oUFxkhYdY;8XHO_syb{`A#N&5 z;Id~RP$&%zz{ zL#rMt)#$1AiuefDk@#GZI-q4I6iU#0|81Qq1Msraw;-`WnlG^IHZkt*y zruA8H_c{?N@erMP#kP7>gl#?aRW#^;3Ac;0AS>=8b8En`r3nR=7Q&SDGatkIZU3p< zS4=55WNqeyi1*gu#6T0#eaK|u=DdE^hbN_OSVm|plsfUuRf6%-Y{K4)<^Bpt`cFU> z^I}^iLcq$Be!NFqLmHUMnmB%&?8JJs7LN+aZ=()eQ}Mp3irT0m zeBWM)Iy(#PC_e+D9lk8%bzFJvATpgak`*6Uka<>EI3@oY$;C%HUdbCHE~s^8bdJa| z5iw(NCWClOjA*$IUs=7_aa5qi5#-$JaxkQ}8(&m;&|S;-o1W0^&249t#W$5R#NBCV z8)Z0UHESFFiwG%LsMGD>*d(2{7|kU*@GJ=eN=ckwjt`GA&>pSDkJZQU0f|s`HQ9nPT#UIX z3z&X8HdPY560>uAnMApAoaTI!+|#<_HqNnJeTx`0dG~EiF`6&1WEc5fyOmPBa3L2L z<27VfX0mk|h{m(w_6E6qm3uWDn?;QY-+8j}lZ#hBiC68h@A>yeL=5xP+mxEy#m^=k zuuS^-Jt9aJW>x43G91d4x+0=)0|sZp+`kPy(*=9G7lB$gE?;DEXV#o(tzX{1G%sA5 V7cE^AEL|6^UH9)x_&@$c`Y%d94&DF& delta 4072 zcmai%L1-OS6o&8Q#VFdwR0;+QA-Jfql^Pt16}k{25(FU?6cGv$>QyL;%MiqQ2!SrD zqzn`Xig{$AK`h$7E`&nqGU|Y$ly=dDSP)mX;Lb(I|NqaqR})fvZJK;JcfLFKzcX{D z{eG|C@2$>Gj|BfrgfNC53w+(}x{kl?;p@V&uZy}X-W^}~?$uxB&Rj39)WSsr^5 zKi-+E{~q~px1~JzZyMN+&y#bhl^uRjSf$YpDWHR9=W({Sk&dN z{q@^>o>(7$q5fpgkM)}qSB4)y`gk$&!M^&!W-FdZl=?7O>L@iQmO4uPJWy(!?|;)OOH8eg1+cXm0;>ZYYiVilQpQ+T zD4zg(dK`Tm=;;yP0D5}F*MXiMaT6%@w(}?>s|)yJX*GsRo>ptP8Y**j#<#<&^3Yk| zgj%N+eTnXhQqLrHl=>)6%F>d04kDSO%-klKw}lsDg>?0?C2miTRi){a>fgT?5Qn+2&!KKuLw5HP4IX!db^oYmP63dRrZPF5BAaY-HT2bcB zWR5a(#gu|q3jlLT&6{mQ_s`aNnx?^Eel!^09fJ*KmEl<)C9%#Ji7TN> zWw{upr^oVpKu?eO4$#vho=<~IsRyWOa4GfajBZZVmdBn<;Ze(BX}w3K>~0x6}gGfKUZ(bax;l~Qw?JUps#Rolc-=JV;;C^NUo2FqM=pNw6d zP-@;zJEe#AgPHibvtxLyGCZvqPZQv$86$DkutNK3$ft6-CH6CFCWh(hvAU5_YR;rJ z;9f(O+hiy+x5-duZj&L+6|~N13OM*1pk~5T4#<7dXxz6z&ZInWAp&_j8A`p9F`x8~ z;rWfqiFW9}O)k$f+eW=>H`IpeUHdYsbv{&LOAj{y&hiLQOKP)O)fVO|ga^~; zR%&)hD@#3gimTnlniatJKu<^+eT$ zdsG{>u3M;jcx-I!5<2Ndt!r<_M*VjtvwGKIY`7+F)Vuf|pevx2`gfoO;9b!Nw^Hv; z$F}N<`!dQrlTl`FQzdmL^&emh)73t4CpEXp220ItGL)LzWGFSm6JqUK!qYX*tJtHh zwv-$7u4^cJdhA9wb3ER={Bhf;bzdS^)V~5fJgT`(8r-=#4VIaAlO0=0&D+UXYNjXLmL6_- zsPA=QHh7R(w#fH2P28v}@*=-#>2dVWKu?c&4GZ+}h}Z?FajE4=X+$Ou$q~`0Ir6n~dwqs@HOj;7i%|hHvU3l%^HQ~X9GMDJ-CG_+X zN{z65u(_mWT6aRYKlJKDgXwy(_E7!o+IZ2c`)ddDPtS=DOdwt=Qpy~3pq?5$jPjwu t%ldb^J~#M&{p{EP}I>#c80{sUYYtik{Q diff --git a/Source/State.as b/Source/State.as deleted file mode 100644 index bce056d..0000000 --- a/Source/State.as +++ /dev/null @@ -1,20 +0,0 @@ -class State { - 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); - } -} diff --git a/Source/Unit.as b/Source/Unit.as new file mode 100644 index 0000000..95ba794 --- /dev/null +++ b/Source/Unit.as @@ -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 + } +} diff --git a/Source/Utils.as b/Source/Utils.as new file mode 100644 index 0000000..844cf16 --- /dev/null +++ b/Source/Utils.as @@ -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); + } */ +}