Показать сообщение отдельно
Старый 17.11.2012, 13:27
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 10  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
if (obj as МойКласс)
Вообще логичнее is МойКласс, но не суть.

Если под требуемый объект нет резона создавать отдельный МойКласс или заставлять реализовывать МойИнтерфейс есть более гибкий способ:
(ну действительно, нужно только узнать тот ли это объект, не плодить же классы/интерфейсы ради этого)

- создаем константу, где удобнее
Код AS3:
public static const MY_OBJECT:String = "myObject";
- вешаем на требуемый объект пустой слушатель (можно вообще любую функцию - она не будет вызываться, можно вообще одну на весь проект создать в отдельном файле "fakeListener.as")
Код AS3:
myObject.addEventListener(MY_OBJECT, fakeListener);
...
function fakeListener(event:Event):void {}
- проверяем, тот ли это объект
Код AS3:
while(true) {										
					if (obj.hasEventListener(MY_OBJECT)) { canvasTrace('BUBBLED from MODULE');	break;  }
					if ( obj == this) { canvasTrace('NO IMODULE PARENT!'); break; }
					obj = obj.parent;					
				}
Бонус:
Можно проверить, является ли объект ребёнком какого-нибудь "myObject"
Код AS3:
if (child.willTrigger(MY_OBJECT)) {...}