Paul,
You are perfectly right. The case of Beno's piece:
if (e.target.currentFrame == 40) TweenMax.to(mcHandInstance2, 2, {x:200,
startAt:{totalProgress:1}}).reverse();
...is clearly a proof of what you say, because it already produced
confusion.
Greg
Wednesday, December 09, 2009 (1:30:22 PM) Paul Andrews:
> Greg Ligierko wrote:
>> Well... Code without braces may look a bit confusing, but that depends
>> on what somebody is used to and just what you like. An example when I
>> often bypass braces is setting default values for AS2 function
>> arguments:
>>
>> function funName(arg1:Number, arg2:Object):Object
>> {
>> if(isNaN(arg1)) arg1 = 0;
>> if(arg2 == null) arg2 = {};
>>
>> //... rest of code
>> }
>>
>> This has no sense in AS3 because it provides a new syntax for setting
>> default values fun(arg:Number=0):void.
>>
>> Another example:
>> function funName2(flag:Number):Number
>> {
>> if(isNaN(flag)) return someValue;
>> return someOtherValue;
>> }
>>
> The only problem with this (and yes, I have like everyone else coded
> like that), is that it doesn't explicitly indicate the intention of the
> code.
> If the function is written as:
> if(isNaN(flag)){
> return someValue;
> } else {
> return someOtherValue;
> }
> Then the intention to return one or the other depending on the test is
> very explicit. Maybe it doesn't matter for these trivial examples, but
> the intent can be less obvious when the code is more complex.
> I think every body uses the shortcuts (me too) for conditional
> statements, but I think often it's really bad practice and it's often
> proven as bad practice when begginers can't debug their code because it
> looks "right".
> I start off by writing.
> if (i==6) doThis();
> Well already I've messed up any visual clues about the nesting of code
> conditionals when I scan the page because my "doThis()" isn't indented
> equally with other conditional code.
> Lets put that right.
> if (i==6)
> doThis();
> Now the visual appearance of the code makes me instantly see that the
> call to "doThis" is nested in conditional code - it's indented to the right.
> No problem, now right?
> A month later I realise there's a bug and it should really be
> "doThis();doThat()" if i equals 6.
> In my hurry I now make this update:
> if (i==6)
> doThis();
> doThat();
> And it looks right, but now my code is behaving even more badly.
> Scanning through the code doesn't give an instant clue because this wil
> be buried amongst a load of other stuff.. Only later do I realise that
> while my indents look right, the actual interpretation is:
> if (i==6)
> doThis();
> doThat();
> ..something I didn't intend.
> Now, if I was in the habit of writing my conditionals with braces and
> indenting my code, I would be very, very unlikely to make this simple error.
> So I should habitualy write:
> if (i==6) {
> doThis();
> }
> or (depending on your own preferences)
> if (i==6)
> {
> doThis();
> }
> Then I can't go wrong when I come to add extra code:
> if (i==6)
> {
> doThis();
> doThat();
> }
> So, in essence, adding braces even when they aren't needed will make you
> less likely to make accidental mistakes in the future.
> Paul
>> You mention using braces without somewhere to emphasize the code. I
>> think it is just somebodies preference how he highlights separated
>> logic
>>
>> Usually separated logic should be done just by writing a separate
>> method but when there are performance issues (calling a new method
>> leads to redeclaration of variables) or when this part of code sets a
>> group of new variables (separate method returns only one value, unless
>> it returns an array or object - again performance issue), this may
>> have sense. Still, I prefer adding a commented bar or a short limerick
>> instead or braces.
>>
>> Greg
>>
>>
>>
>>
>>
>> Wednesday, December 09, 2009 (6:18:42 AM):
>>
>>
>>> Yes, your correct.
>>> I always use braces.
>>> It looks aesthetically pleasing to me and helps me separate things.
>>>
>>
>>
>>> BTW, what is the point of braces if you dont need them, except the
>>> separation of your code part.
>>> Are they needed in some situations over others?
>>>
>>
>>
>>> Karl
>>>
>>
>>
>>
>>
>> _______________________________________________
>> Flashcoders mailing list
>> [email protected]
>> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>>
>>
> _______________________________________________
> Flashcoders mailing list
> [email protected]
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders