Показать сообщение отдельно
Старый 06.11.2012, 20:17
AleXXX вне форума Посмотреть профиль Отправить личное сообщение для AleXXX Найти все сообщения от AleXXX
  № 5  
Ответить с цитированием
AleXXX

Регистрация: May 2012
Сообщений: 38
В общем реализовал так:
Код AS3:
SomeObject.addEventListener(MouseEvent.CLICK,this.onClick,false);
......
private function onClick(e:MouseEvent):void   //Обработчик клика
{
    ......
    var pool:Array = this.getUpperOfLowerUnit(e.stageX,e.stageY);
    ......
 
}
 
private function getUpperOfLowerUnit(x:int,y):Array
{
        var gp:Point = new Point(x,y)
        var TmpPool:Array = this.parent.getObjectsUnderPoint(gp);   //Тут получается  список Shape'ов
        var Pool:Array = new Array();
 
	for(var i:int=0;i<TmpPool.length;i++){
 
		var c:DisplayObject =TmpPool[i] as DisplayObject;  
 
                while(c.parent!=c.root ){   //тут пробираемся от Shape'а по списку отображения вверх 
		   if(c is Нужный тип){      // пока не встретим нужный тип наследника DisplayObject
		       break;
		   }
		  c=c.parent;
	        }
		if(c is  Нужный тип && c!=this){
 
			if(Pool.indexOf(u)<0) {   //если объект не  добавлен
 
				Pool.push(u);  //добавляем
			}						
		}			
        }
        return Pool
}