Question

In ActionScript 3, when you declare an optional argument by giving it a default value, the value null cannot be used on typed arguments.

function Action(Param:int=null){
    // 1184: Incompatible default value of type Null where int is expected.
}
function Action(Param:int=0){
    // No compiler errors
} 

Any workarounds for this, or general purpose values that can apply to all data types?

Was it helpful?

Solution

You can change your int to Number and then can set it to NaN which is a special number that means 'not a number' and this can represent your null state for a Number.

To check if something is NaN, you must use the isNaN() function and not val == NaN, or you will not get what you expect.

function Action(param:Number = NaN) : void {
    trace(param);
}

For all other objects, you can set them to null, but 'primitive' numbers are handled differently in Actionscript.

OTHER TIPS

int variables cannot be null, that's why you get that error, only reference types like objects can be null

Instead you can use NaN as a special number instead of null. If you want to check if something is NaN you mus use the isNaN function.

you could also include a flag in the method signature to avoid having the parameter promoted from int to number:

function whatever(intProvided:Boolean = false, someInt:int = 0):void
{
    if(intProvided)
        doSomeStuff();
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top