Jason As a sanity check I tried it and I get the exact same error. I am using Flex SDK 3.3.0 and Flash Player WIN 9,0,159,0 Debug.
Strangely enough, changing b to y fixes it and the error goes away. Other variable identifiers I have tried (Very small sample) gives the error as well. It's got me beat. Why would the posted code give an error at all? Why would y work and everything else not? --- In [email protected], Pan Troglodytes <chimpathe...@...> wrote: > > I wonder if I wasn't clear enough on this - these are run-time warnings that > output to the console. You don't get those? > > > On Mon, May 11, 2009 at 5:27 PM, Alex Harui <aha...@...> wrote: > > > > > > > I didn't get any warnings like you did so I couldn't investigate further. > > > > > > > > Alex Harui > > > > Flex SDK Developer > > > > Adobe Systems Inc. <http://www.adobe.com/> > > > > Blog: http://blogs.adobe.com/aharui > > > > > > > > *From:* [email protected] [mailto:[email protected]] *On > > Behalf Of *Pan Troglodytes > > *Sent:* Saturday, May 09, 2009 10:38 PM > > *To:* [email protected] > > *Subject:* Re: [flexcoders] using "as" breaks data binding? > > > > > > > > > > > > > > 3.3.0. I also get it with 4.0.0.6137. Just downloaded and got it in > > 6772, too. I'm using player version 10,0,12,36. Do you need to know > > anything about my Flex Builder version? Let me know anything else I can > > provide. > > > > When you say you don't get it with the soon-to-be 3.4, what exactly do you > > mean? You just don't get the run-time warning? Did you track down why it > > would be okay with "x" and see if that's still doing whatever weird thing it > > is in 3.4? > > > > On Sat, May 9, 2009 at 4:11 PM, Alex Harui <aha...@...> wrote: > > > > > > > > Which version of Flex? I don't get it on the latest builds that will ship > > as 3.4 > > > > > > > > Alex Harui > > > > Flex SDK Developer > > > > Adobe Systems Inc. <http://www.adobe.com/> > > > > Blog: http://blogs.adobe.com/aharui > > > > > > > > *From:* [email protected] [mailto:[email protected]] *On > > Behalf Of *Pan Troglodytes > > *Sent:* Friday, May 08, 2009 11:06 PM > > *To:* flexcoders > > *Subject:* [flexcoders] using "as" breaks data binding? > > > > > > > > > > > > I've run across some peculiar behavior and I am trying to figure out if I > > should report it and if so, how exactly to explain it. Given these two bits > > of code: > > > > *TestObject.as:* > > package > > { > > public class TestObject > > { > > [Bindable] public var a:uint = 2; > > [Bindable] public var b:uint = 3; > > [Bindable] public var x:uint = 1; > > } > > } > > > > *Main Application:* > > <?xml version="1.0" encoding="utf-8"?> > > <Application > > xmlns="http://www.adobe.com/2006/mxml" > > > > > <Script> > > <![CDATA[ > > import mx.collections.ArrayCollection; > > [Bindable] public var d:ArrayCollection = new ArrayCollection([ > > new TestObject, > > new TestObject, > > new TestObject > > ]); > > ]]> > > </Script> > > <List dataProvider="{d}"> > > <itemRenderer> > > <Component> > > <HBox> > > <Label text="{TestObject(data).a}"/> > > <Label text="{(data as TestObject).b}"/> > > <Label text="{(data as TestObject).x}"/> > > </HBox> > > </Component> > > </itemRenderer> > > </List> > > <Button click="for each (var o:TestObject in d) { o.x++; o.a++; o.b++ > > }"/> > > </Application> > > > > If you run this application, you get the following warnings: > > warning: unable to bind to property 'b' on class > > 'GenericTest_inlineComponent1' > > warning: unable to bind to property 'b' on class > > 'GenericTest_inlineComponent1' > > warning: unable to bind to property 'b' on class > > 'GenericTest_inlineComponent1' > > warning: unable to bind to property 'b' on class > > 'GenericTest_inlineComponent1' > > warning: unable to bind to property 'b' on class > > 'GenericTest_inlineComponent1' > > warning: unable to bind to property 'b' on class > > 'GenericTest_inlineComponent1' > > > > There's a couple of things that stand out here. First, it doesn't complain > > about properties "x" or "a". The reason it doesn't complain about property > > "a" is that I used "TestObject(data).a" instead of "(data as > > TestObject).a". If you change it to the other way around, you will get a > > warning on "a" as well. I find this rather bizarre, as I thought there was > > no functional difference to the two, other than "as" returning null if the > > object wasn't of the appropriate type rather than just erroring out like > > straight type coercion does. But type coercion/as are very (ahem) "lightly" > > documented so I admit I don't know a lot. But I don't think it's because of > > the null problem, since you can replace it with "TestObject(null).b" and it > > stops giving the warning. > > > > The second weird thing is that it doesn't complain about "x" when using > > "(data as TestObject).x" like it does with a. As you can see, it's claiming > > this error is on GenericTest_inlineComponent1. This is significant > > because it appears that it's instead doing some binding to the "x" property > > on the item renderer, which is *very* odd. You can try this yourself by > > changing "x" to other strings. Ones where there is a property of HBox named > > the same thing won't give you a warning. Others will. > > > > Yet for all this griping, it seems the data binding IS working. If you > > click on the button, you'll see all the labels in the list change as the > > data is being changed. > > > > So, anyone want to shed some light on these two behaviors? > > > > -- > > Jason > > > > > > > > > > -- > > Jason > > > > > > > > > > -- > Jason >

