Conversion to Primitive Types

When I first determined to datatype my codes strictly, I had this illusion that I must assign everything according to their data types. Here’s an example of me being disillusioned 😛:

var age:uint = 2; // hardcoded value for testing
var isBorn:Boolean = ( age == 0 ) ? false : true;
trace( isBorn ); // returns true.

age = 0;
isBorn = ( age == 0 ) ? false : true;
trace( isBorn ); // returns false.

As you can see from the above example, it was not pretty. It was only when I read the section of Conversion to Primitive Types in Essential ActionScript 3.0 did it dispels my misconception. 😀

So here’s what I can actually do:

var age:uint = 2;
var isBorn:Boolean = age;
trace( isBorn ); // returns true as well.

age = 0;
isBorn = age;
trace( isBorn ); // returns false. Works well!

In another typical scenario, if I wanted to make a movieclip’s visibility to false and alpha to 0, instead of doing:

mc.visible = false;
mc.alpha = 0;

I can just:

mc.visible = mc.alpha = 0;

** Do you see the advantage already? ** :)

More info about type conversions can be found here on Adobe LiveDocs.

The information below is referenced from: Essential ActionScript 3.0 by Colin Moock. Copyright 2007 O’Reilly Media, Inc., 0-596-52694-6
[table id=1] [table id=2] [table id=3] [table id=4] [table id=5]

About Flashmech

I have too many things in plans for my own good. But well, that's me. :) I love God, praise Him, and trust that He has the best plans in life for me.
This entry was posted in ActionScript, Books and tagged . Bookmark the permalink.

2 Responses to Conversion to Primitive Types

  1. Steven Sacks says:

    Instead of a ternary operation (a ? b : c), you can just say

    var flag:Boolean = (a == 0);

    or

    var flag:Boolean = (a == "hello");

    This works really well for things like

    private function onButtonClick(e:Event):void
    {
        var i:int = buttons.length;
        while (i--)
        {
            e.currentTarget.selected = e.currentTarget == buttons[i];
        }
    }
  2. flashmech says:

    I love that example! Thanks! 😀