Actually it's not a bug, it's more of a side effect of
supporting attributeCollection and optional CFC arguments from
flash.
In flash, you can call a function 2 ways
parameter list (args must be in a specific order)
myRemoteObject.myFunction(val1, val2, val3);
or a named list (and args can be in any order, lets you
define optional arguments)
myRemoteObject.myFunction( {arg1:val1, arg3:val3, arg2:val2}
);
However the side effect is
myFunction( someObject );
and
myFunction( {arg1:val1, arg2:val2} );
both appear to CF as 1 argument that is a struct. So if you
are only passing 1 argument, CF assumes you are trying to use named
arguments so it tries to map all of the properties to individual
arguments and it will pass all of the properties in as individual
arguments.
However, if you pass a 2nd argument in then CF knows the
first argument is a struct and passes it into the cfc function as a
struct.
So your workaround is to pass in a 2nd argument with the
function call. And the easiest way to do this is to pass null as
the 2nd arg. This way the Flash Remoting gateway will see 2 args
but since CF doesn't understand null it will ignore it.
myRemoteObject.myFunction( someObject, null );
hth,
---nimer