and here is the bug id:
http://bugs.adobe.com/jira/browse/ASC-2812

On 9/27/07, Johannes Nel <[EMAIL PROTECTED]> wrote:
>
> as a side note, someone on the player team did think this was a bug before
> i logged it post i escalated it to people who know more people than i do :)
>
> On 9/27/07, Johannes Nel <[EMAIL PROTECTED]> wrote:
> >
> >  var mo:MyOther = new MyOther();
> > var mp:MyProxy = new MyProxy();
> > mo.nextfunction = mp['go']
> >
> > this is a very good point.
> >
> >
> >
> > On 9/27/07, actionscript_czar <[EMAIL PROTECTED] > wrote:
> > >
> > >   This doesn't seem to be a bug to me, just looking at it from a
> > > limited perspective.
> > >
> > > Image a class that lookes like this:
> > >
> > > class MyClass
> > > {
> > > public var go:Function;
> > >
> > > public function MyClass( goFunc:Function )
> > > {
> > > this.go = goFunc;
> > > }
> > > }
> > >
> > > In this case go is a property that happens to be a function object.
> > > So what if using your proxy with another class you did something like
> > > this:
> > >
> > > var mo:MyOther = new MyOther();
> > > var mp:MyProxy = new MyProxy();
> > > mo.nextfunction = mp['go']; // could also be mp.go
> > >
> > > In that case it would use getProperty and your description is no
> > > different. When you use the [] operators it gets the property then
> > > you use the () operators to call the property. The () property is
> > > expecting a function object on the left hand side. The reason it
> > > doesn't use callProperty is because the () operators only see a
> > > function object but don't see it as part of the MyProxy object.
> > >
> > > This doesn't mean it couldn't work as you expect in the future, but
> > > my understanding says the two methods of getting to go are processed
> > > distinctly for a reason.
> > >
> > > --- In flexcoders@yahoogroups.com <flexcoders%40yahoogroups.com>,
> > > "Derek Vadneau" <[EMAIL PROTECTED]>
> > >
> > > wrote:
> > > >
> > > > There seems to be a bug in flash.utils.Proxy. Here's some sample
> > > code:
> > > >
> > > > var mp:MyProxy = new MyProxy();
> > > >
> > > > mp.myVar = 'something'; // calls flash_proxy setProperty as expected
> > > >
> > > > mp['myVar'] = 'something'; // calls flash_proxy setProperty as
> > > expected
> > > >
> > > > mp.go(); // calls flash_proxy callProperty as expected
> > > >
> > > > mp['go'](); // calls flash_proxy getProperty - NOT expected
> > > >
> > > > Why is getProperty called where the [] operator is used instead of
> > > the
> > > > . operator in the case where a function is being called, but not
> > > when
> > > > setting a property?
> > > >
> > > > And in that case you MUST return a function or a runtime error will
> > > be thrown.
> > > >
> > > > This is unexpected behaviour, as far as I can see.
> > > >
> > > > Another example:
> > > >
> > > > mp.obj.go();
> > > >
> > > > mp['obj']['go'](); // getProperty is called twice, callProperty is
> > > NOT
> > > > called at all
> > > >
> > > > The issue is that I am dealing with a dynamic API, so I don't always
> > > > know that 'obj' or 'go' is a property vs. a method.
> > > >
> > > > But, because the getProperty is called when a callProperty should be
> > > > called I am passing an instance of my Proxy class and a runtime
> > > error
> > > > is thrown.
> > > >
> > > > --
> > > >
> > > > Derek Vadneau
> > > >
> > >
> > >  
> > >
> >
> >
> >
> > --
> > j:pn
> > \\no comment
>
>
>
>
> --
> j:pn
> \\no comment




-- 
j:pn
\\no comment

Reply via email to