I have to refute the idea that bindings have ever been problematic.

The way bindings work are very, very simple.  When a variable is declared 
bindable, an event dispatched at the setter.  And binding calling the getter 
then listens for that event, and re-calls the getter when triggered.  
BindingUtils functions do the same thing.

After working and training with various versions of Flex for 6 years, the 
problems I've seen people have with bindings is that they're changing a 
non-binding object somewhere in the chain.  It's usually pretty easy to fix-- 
just make the unbound object bindable.  Have you seen any other specific issues?

I'm pretty sure here that the problem isn't in the Bindings themselves.  My 
best guess is either something stupidly obvious in my code (like declaring 
something as null instead of null-checking it), or more obscure like an of 
optimization in the spark component that's skipping "update()" cycles when it 
thinks the object isn't visible.  But without being able to reproduce the issue 
with any kind of frequency, I can't be sure of that.  Was mostly sending this 
out to see if anyone else had seen the issue.  Since they haven't, I'm going to 
assume it's my code.

I much appreciate your suggestions and response, but don't make unqualified 
statements blaming the core API!


--- In [email protected], yang chen <chenyang3@...> wrote:
>
> 
> MXML binding has always been problematic and very often you'll lose the 
> binding at some point. For me binding utils has been much more reliable.
> Regards,Yang
> 
> > To: [email protected]
> > From: nick14@...
> > Date: Mon, 19 Mar 2012 02:41:27 +0000
> > Subject: [flexcoders] Re: Bindings on visual components being forgotten? 
> > (Flex 3 -> 4.6)
> > 
> > I haven't tried explicitly re-setting the value manually or with 
> > BindingUtils, but that's something I'll try now!  Should still be working 
> > without that.
> > 
> > I have a feeling the problem is actually in the display logic of the 
> > component.  Like perhaps some built-in efficiency code to ignore binding 
> > updates when it's hidden.  But I'll have to deep-dive a little further to 
> > verify that.  It's more likely something I'm missing or doing wrong.
> > 
> > --- In [email protected], yang chen <chenyang3@> wrote:
> > >
> > > Have you tried using binding util?
> > > 
> > > > To: [email protected]
> > > > From: nick14@
> > > > Date: Fri, 16 Mar 2012 20:08:47 +0000
> > > > Subject: [flexcoders] Bindings on visual components being forgotten?  
> > > > (Flex 3 -> 4.6)
> > > > 
> > > > Seeing a strange, rare, issue after updating an app to 4.6.  I can't 
> > > > seem to reproduce it in a dev environment, so I'll list out my issue 
> > > > and setup to see if it sounds familiar to anyone.
> > > > 
> > > > The problem:
> > > > Visual components seem to occasionally "forget" the objects they're 
> > > > bound to.  For instance, I have something like this:
> > > > 
> > > > <s:DropDownList 
> > > >     id="cmbMonth"
> > > >     dataProvider="{model.months}"
> > > >     selectedItem="@{model.selectedMonth}"
> > > > />
> > > > <s:Label text="{model.selectedMonth}" />
> > > > 
> > > > When the problem occurs, the "selectedMonth" in the label component is 
> > > > correct, say, February.  But the DropDownList will display a blank.  
> > > > Even though the DropDownList contains all the months, meaning 
> > > > models.months is bound correctly.
> > > > 
> > > > I tried adding:
> > > >     requireSelection="true"
> > > > 
> > > > The addition changed the behavior.  No more blanks!  But now, instead 
> > > > of blanks, selectedMonth is showing something random like "May".
> > > > 
> > > > Background:
> > > > App has been in production in various versions of Flex 3 for two years 
> > > > without ever seeing this.  Upgrading to Flex 4 and swapping out some 
> > > > Halo components with equivalent Spark ones, users, myself included, 
> > > > began noticing this phenomenon.  I cannot seem to reproduce it in a 
> > > > reliable fashion.  But I've gotten some feedback based on some 
> > > > attempted fixes pushed out to users.
> > > > 
> > > > Troubleshooting so far:
> > > > Since it normally works, there's no super-obvious things missing, like 
> > > > an uninitialized pointer, missing "Bindable" tag, accidental = 
> > > > assignment instead of == comparison, etc.
> > > > 
> > > > Also, we know the variable references are pointing to the correct 
> > > > place.  model.selectedMonth is showing up fine for a label just 
> > > > underneath the dropdown.  model.months is being referenced just fine by 
> > > > the dropdown itself.  It's just the display of model.selectedMonth in 
> > > > the dropdown.  Upon saving, the model.month property correctly 
> > > > propagates itself to the DB, even when the dropdown is displaying the 
> > > > wrong value.  Switching between one-way and two-way bindings don't seem 
> > > > to make a difference either.  I noted above that I tried forcing 
> > > > requireSelection="true", which does prevent the DropDownList from being 
> > > > blanked-out, but doesn't force it to stay on the correct value.
> > > > 
> > > > I thought it might be related to just the DropDownList component, but 
> > > > the problem is also occurring on s:TextInput's text property.  Seems 
> > > > like when it happens with the TextInput component (showing a blank 
> > > > value), it's doing so for all the TextInput components.  I'm not so 
> > > > sure if it's happening for all DropDownList elements, though.
> > > > 
> > > > 
> > > > App setup:
> > > > I have an mx:ViewStack attached to hide/show effects with two 
> > > > containers inside (loggedOff/loggedOn), and a TabNavigator within that. 
> > > >  I think the problems are only occurring after switching between states 
> > > > for the ViewStack.  So after the components are hidden and come back.  
> > > > I remembered back to the Flex 2 ViewStack issue where bindings didn't 
> > > > refresh, and added the old workaround to my code:  
> > > >     change="executeBindings(true)"
> > > > 
> > > > This didn't fix it.  Anything else I can look at or try?  Anyone else 
> > > > experience this before?  Any chance it's related to the framework 
> > > > instead of my code?
> > > > 
> > > > 
> > > > 
> > > > ------------------------------------
> > > > 
> > > > --
> > > > Flexcoders Mailing List
> > > > FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
> > > > Alternative FAQ location: 
> > > > https://share.acrobat.com/adc/document.do?docid=942dbdc8-e469-446f-b4cf-1e62079f6847
> > > > Search Archives: 
> > > > http://www.mail-archive.com/flexcoders%40yahoogroups.comYahoo! Groups 
> > > > Links
> > > > 
> > > > 
> > > >
> > >
> > 
> > 
> > 
> > 
> > ------------------------------------
> > 
> > --
> > Flexcoders Mailing List
> > FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
> > Alternative FAQ location: 
> > https://share.acrobat.com/adc/document.do?docid=942dbdc8-e469-446f-b4cf-1e62079f6847
> > Search Archives: 
> > http://www.mail-archive.com/flexcoders%40yahoogroups.comYahoo! Groups Links
> > 
> > 
> >
>


Reply via email to