Если надо просто обойти предков

Код AS3:
public function update(node:INode):void
{
node.doSomething();
if (node.parent)
update(node.parent);
}
Добавлено через 36 минут
Если надо обновить все дерево

Код AS3:
public interface INode
{
function get parent():INode;
function get childes():Vector.<INode>;
function update(initiator:INode):void
}
public class Node implements INode
{
public function Node(parent:INode = null)
{
this.parent = parent;
}
private var _parent:INode;
public function set parent(value:INode):void
{
_parent = value;
}
public function get parent():INode
{
return _parent;
}
private var _childes:Vector.<INode>;
public function set childes(value:Vector.<INode>):void
{
_childes = value;
}
public function get childes():Vector.<INode>
{
return _childes;
}
public function update(initiator:INode):void
{
if (this == initiator)
return;
if (childes)
{
for (var i:int = 0; i < childes.length; i++)
{
if (childes[i] != initiator)
{
childes[i].update(this);
}
}
}
if (parent && parent != initiator)
parent.update(this);
}
}