void HandleRollOver(TouchInfo touch)
{
DisplayObject element;
element = touch.lastRollOver;
while (element != null)
{
_rollOutChain.Add(element);
element = element.parent;
}
touch.lastRollOver = touch.target;
element = touch.target;
int i;
while (element != null)
{
i = _rollOutChain.IndexOf(element);
if (i != -1)
{
_rollOutChain.RemoveRange(i, _rollOutChain.Count - i);
break;
}
_rollOverChain.Add(element);
element = element.parent;
}
int cnt = _rollOutChain.Count;
if (cnt > 0)
{
for (i = 0; i < cnt; i++)
{
element = _rollOutChain[i];
if (element.stage != null)
element.onRollOut.Call();
}
_rollOutChain.Clear();
}
cnt = _rollOverChain.Count;
if (cnt > 0)
{
for (i = 0; i < cnt; i++)
{
element = _rollOverChain[i];
if (element.stage != null)
element.onRollOver.Call();
}
_rollOverChain.Clear();
}
}