You don't have another class or var with the name includeBase that might be conflicting? That's the kind of thing that has tripped me up in the past. In the debugger can you verify the value of includeBase?
Paul dbronk wrote: > hmmm... I thought I did post a test case. I didn't send in a bug report. > > Here is the meaningful part of my mxml: > <?xml version="1.0" encoding="utf-8"?> > <mx:Application > layout="absolute" > width="100%" height="100%" > xmlns:mx="http://www.adobe.com/2006/mxml" > xmlns:appView="com.tf.app.view.*" > xmlns:appServices="com.tf.app.business.*" > creationComplete="init()"> > > <mx:Style source="assets/css/tf.css"/> > <mx:Style source="assets/css/fonts.css"/> > > <mx:Script> > <![CDATA[ > import com.tf.util.FilterUtils; > > private function init() : void > { > var includeBase : Boolean = determineIfBaseNeeded(); > var filterUtils : FilterUtils(); > filterUtils.filter(includeBase); > } > > private function determineIfBaseNeeded() : Boolean > { > // I simply toggle this back and forth until my logic > is ready. > //return true; > return false; > } > ]]> > </mx:Script> > <!-- the rest of my UI here --> > </mx:Application> > > My FilterUtils class is as follows: > > > package com.tf.util > { > > public class FilterUtils > { > function filter(includeBase:Boolean) : void > { > var filterData : ArrayCollection = new ArrayCollection() > if ( includeBase ) > { > filterData.add(Models.getInstance().base); > // Do a whole lot of stuff here. > // Including updating bound variables, etc. > } > // After if do the rest of my merge process. > // Actually filtering the data and adding to filterData > Models.getInstance().filteredData = filterData; > } > } > > > > > > --- In [email protected], "Alex Harui" <[EMAIL PROTECTED]> wrote: > >> If you have time to create a simple test case, please post it or file a >> bug. >> >> ________________________________ >> >> From: [email protected] [mailto:[EMAIL PROTECTED] On >> Behalf Of dbronk >> Sent: Thursday, September 27, 2007 7:20 AM >> To: [email protected] >> Subject: [flexcoders] Re: Very strange runtime behavior - if logic >> doesn't work????? >> >> >> >> I'm constructing the boolean as follows: >> >> private var includeBase : Boolean = false; >> >> Then in my logic to call the filter function I do: >> >> includeBase = determineIfBaseNeeded(profile); >> filterObj.filter(includeBase); >> >> The determineIfBaseNeeded is declared as follows: >> >> private function determineIfBaseNeeded(profile:Profile) : Boolean >> { >> // Do all logic to determine if base is needed or not. >> // return true/false depending on logic. >> } >> >> The strange thing is I have other place where I have if statements >> with no else that work just fine. It is almost like the if check is >> simply checking of the Boolean object exists instead of whether it is >> true or false. >> >> Thanks, >> Dale >> >> --- In [email protected] <mailto:flexcoders%40yahoogroups.com> >> , shaun <shaun@> wrote: >> >>> Hi, >>> >>> How are you constructing your Boolean object? >>> Are you doing something like: >>> >>> var b:Boolean("false"); //true. >>> >>> when you want: >>> >>> var b:Boolean(false); //false. >>> >>> Have a read of the docs for the Boolean constructor if this is how >>> >> your >> >>> creating your Booleans, that might clear things up. >>> >>> [snip] >>> >>> >>>> My actual code is: >>>> >>>> function filter(includeBase:Boolean) : void >>>> { >>>> if ( includeBase ) >>>> { >>>> // Do a whole lot of stuff here. >>>> // Including updating bound variables, etc. >>>> } >>>> // After if do the rest of my merge process. >>>> } >>>> >>>> My problem was that if I passed in true or false, it always went >>>> >> into >> >>>> the true block of the if statement. So that is when I created my >>>> >> test >> >>>> function of crazy. So let's forget about that test function >>>> (although, there were not dup names. One var is "s", the other is >>>> >> "ss"). >> >>>> So, my function has several things it will be doing inside of the >>>> >> true >> >>>> portion of the if statement, and then whether or not it was true or >>>> false, continue with other processes. After creating my "crazy" test >>>> function I then came back and modified my function to: >>>> function filter(includeBase:Boolean) : void >>>> { >>>> if ( includeBase ) >>>> { >>>> // Do a whole lot of stuff here. >>>> // Including updating bound variables, etc. >>>> } >>>> else >>>> { >>>> // HACK FOR AN APPARENT BUG! >>>> // Not sure why, but this if statement will always resolve to >>>> true unless there is an else. >>>> var whoKnowsWhy : String; >>>> } >>>> // After if do the rest of my merge process. >>>> } >>>> >>>> Once I did this, my code works great. includeBase of true and it >>>> >> will >> >>>> go into the true block. includeBase of false and it will go into the >>>> false block. >>>> >>> I find this very very hard to beleive. I'm betting you changed the way >>> >>> your exercising the code (ie) by passing in an explicit false or >>> >> true to >> >>> the function. >>> >>> [snip] >>> >>> HTH. >>> - shaun >>> >>> > > > > > -- > Flexcoders Mailing List > FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt > Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com > Yahoo! Groups Links > > > > >

