[Laszlo-dev] cannot reference global var from function definition in swf9
P T Withington
ptw at pobox.com
Wed Jul 23 08:29:59 PDT 2008
We determined that this was due to the closure being created in a
method which had a `with(this)` automatically inserted.
Really a bug in the flex compiler, but my change of yesterday which
removes the superfluous `with(this)` from swf9 methods makes the
problem go away.
Henry will report to Adobe.
On 2008-07-23, at 10:46EDT, Henry Minsky wrote:
> I'm getting this error
> [/tmp/lzswf9/lzgen46172/$lzc$class_xmlrpc.as: 18] line unknown: Error:
> Access of undefined property LzXMLRPCService.
>
> from code which refers to the global var LzXMLRPCService
>
>
> if ( this.proxy[method] == null ) {
> this.proxy[method] = function (paramArr,
> delegate) {
> var args = arguments.callee.args;
> LzXMLRPCService.invoke(delegate, paramArr,
> { service: args.service, methodname:
> args.method},
> args.secure, args.secureport);
> }
> this.proxy[method].args = {
> service: this.service,
> method: method,
> secure: this.secure,
> secureport: this.secureport
> }
> }
>
> The var is declared at the top level as
>
> var LzXMLRPCService:LzXMLRPC = new LzXMLRPC();
>
> and it exists and regular references to it compile in the code, but
> for some reason, inside of the function () expression, it
> says it is undefined.
>
> I can't figure out if I'm doing something wrong, or if this is a
> compiler bug (in the flex compiler?)
>
> Maybe I ought to rewrite this code to operate in a different manner, I
> think it is a little
> dicey to try to be adding properties to a function object in swf9
> anyway, I recall that
> failed when trying to add properties to a method.
>
> --
> Henry Minsky
> Software Architect
> hminsky at laszlosystems.com
More information about the Laszlo-dev
mailing list