К сожалению, Actionscript всегда передает примитивы по значению и всегда передает объекты по ссылке¹ (кто-то исправит меня, если я ошибаюсь).
Что вы можете сделать, это обернуть ваш примитив вобъект.
var A:Object = {"value":3};
var B:Object = {"value":5};
Swap(A, B);
trace(A.value, B.value);
function Swap(a:Object, b:Object):void
{
var temp:Object = a.value;
a.value = int(b.value);
b.value = int(temp);
}
Я знаю ... Это некрасиво и не подходит в большинстве случаев ...
¹ На самом деле это не так, какссылки отличаются, но указывают на один и тот же объект, в отличие от примитивов, что ссылки указывают на разные примитивные значения.