Показать сообщение отдельно
Старый 28.11.2012, 12:20
bav вне форума Посмотреть профиль Отправить личное сообщение для bav Найти все сообщения от bav
  № 3  
Ответить с цитированием
bav
 
Аватар для bav

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
В общем случае вам нужно использовать свойство parent и двигаться по родителям вверх, пока не достигнете нужно клипа. Раз нам не известно имя клипа, на котором нужно остановиться (иначе мы просто проверяли бы свойство name), то нужно что-то еще информирующее нас о достижении нужного клипа. Например если нам известно имя родителя нужного нам клипа, то можно в цикле перебора родителей хранить две ссылки: на текущий клип и на его родителя. Как только имя родителя совпадает с искомым, значит текущий клип ссылается на требуемый нам клип.
Или каким-либо еще образом помечать искомый клип. Далее приведен псевдокод отражающий идею, понятно, что у класса DisplayObject нет свойства mark.
Код AS3:
function getMarkedClip(fromClip:DisplayObject, mark:/*SomeClass*/):DisplayObject
{
    var result:DisplayObject = (fromClip.mark == mark ? fromClip : null);
    if (result)
        return result;
    var clip:DisplayObject = fromClip;
    while (clip.parent)
    {
        clip = clip.parent;
        if (clip.mark == mark)
        {
            result = clip;
            break;
        }
    }
    return result;
}


Последний раз редактировалось bav; 28.11.2012 в 12:35.