Натолкнулся на одну неприятную особенность AS3. Суть ее состоит в следующем: Присвоить объекту, передаваемому в функцию по ссылке, новое значение можно лишь в двух случаях:
1) Когда переопределяются заранее известные свойства этого объекта:

Код AS3:
function change( target:Point )
{
target.x = 300;
target.y = 300;
}
var p:Point = new Point( 100, 100 );
trace( p ); // Выведет (x=100, y=100)
change( p );
trace( p ); // Выведет (x=300, y=300), т.к. свойства объекта были переопределены.
2) Когда новое значение присваивается известному свойству( которое и будет искомым объектом ):

Код AS3:
function change( target:DisplayObject )
{
target["p"] = new Point( 300, 300 );
}
var p:Point = new Point( 100, 100 );
trace( p );
change( this );
trace( p ); // Данный пример в поле Outputs выведет те же значения, что и в первом случае.
Однако эти два варианта не подходят, ибо желаемый результат может быть получен только при присваивании объекту нового экземпляра класса:

Код AS3:
function change( target:Point )
{
target = new Point( 300, 300 );
}
var p:Point = new Point( 100, 100 );
trace( p ); // Выведет (x=100, y=100)
change( p );
trace( p ); // Выведет (x=100, y=100)
Видимо так происходит потому, что в функции вместо ссылки в переменную "target" записывается новый экземпляр класса Point, что не изменяет объект, располагаемый "на другом конце" ссылки. Но не удивительно, что это вообще никаким образом не подходит. Прошу помочь решить.