Yeah, the current state of the compiler is that we are checking for specific AST patterns. We handle the common case here for passing a method from an implied ‘this’ pointer which is a different tree than if you actually type “this.”. We need a more general mechanism.
-Alex On 7/14/15, 4:33 PM, "Josh Tynjala" <joshtynj...@gmail.com> wrote: >That worked! I thought I had tried that. I don't usually use "this." when >adding event listeners in ActionScript. I guess I was thinking too much >about how it would be converted to JavaScript or something. I must have >thought it would help the compiler. Haha! > >- Josh > >On Tue, Jul 14, 2015 at 4:11 PM, Alex Harui <aha...@adobe.com> wrote: > >> Bummer. >> >> Did you try: >> >> this.addEventListener("mousedown", simpleButton_mousedownHandler); >> >> The “this.” might be creating a pattern that isn’t handled. I’m sort of >> hoping Mike will finish his mother-in-law’s bathroom and find time to >> start in on some way to pass context so we don’t have to one-off these >> patterns. >> >> -Alex >> >> On 7/14/15, 3:50 PM, "Josh Tynjala" <joshtynj...@gmail.com> wrote: >> >> >Alex, >> > >> >The change you made worked for the case where the function is assigned >>to >> >a >> >variable, but it doesn't account for the function being passed as an >> >argument to a function. >> > >> >This still doesn't work for me: >> > >> >this.addEventListener("mousedown", this.simpleButton_mousedownHandler); >> > >> >However, as a workaround, I can do this, for now: >> > >> >var mouseDownListener:Function = this.simpleButton_mousedownHandler; >> >this.addEventListener("mousedown", mouseDownListener); >> > >> >- Josh >> > >> >On Sun, Jun 28, 2015 at 10:13 PM, Alex Harui <aha...@adobe.com> wrote: >> > >> >> >> >> >> >> On 6/28/15, 2:21 PM, "Michael Schmalle" <teotigraphix...@gmail.com> >> >>wrote: >> >> >> >> >On Sun, Jun 28, 2015 at 5:17 PM, Josh Tynjala >><joshtynj...@gmail.com> >> >> >wrote: >> >> > >> >> >> Yes, that is correct. >> >> >> >> >> >> In case it wasn't obvious, event listeners are the typical use >>case >> >> >>where >> >> >> you'd pass a reference to a member function somewhere else where a >> >> >> reference needs to be saved in a variable. AS3 made this easy by >> >> >> automatically binding member functions. JavaScript usually >>requires >> >>some >> >> >> manual intervention to get event listeners to be called with the >> >>right >> >> >> scope. >> >> >> >> >> > >> >> >Yeah the compiler does this already for anonymous functions, it >> >>creates a >> >> >self var pointing to 'this' and then uses self in the anonymous >> >>function's >> >> >body. >> >> >> >> Actually, that ‘self’ stuff is for AS lexical scoping. Josh is more >> >> interested in the use of goog.bind for function identifiers. >>FalconJX >> >> handles that correctly in most cases for addEventListener and other >> >> callbacks, but I guess we don’t handle this scenario. >> >> >> >> I can try to take a look at it, but if you want to, search for >> >>GOOG_BIND. >> >> >> >> > >> >> >I wasn't aware of this problem though, can you create a JIRA >>ticket? I >> >> >probably will be the one that tackles it since I am sure Alex >>doesn't >> >>have >> >> >time to do something like this and test it as well. >> >> >> >> Well, I can probably get it working, but I’m sure I won’t test it as >> >>well >> >> as you will. >> >> >> >> -Alex >> >> >> >> >> >>