배경 : 멋진 (비공개로 문서화되지 않은 경우) AS3SVGRenderer lib를 스쳐 지나가고 있고 이해할 수없는 코드가 있습니다.일부 루프 코드가 DisplayObject 계층 구조를 따라 잡는 것을 이해합니다.
아래 코드는 lib의 Flex 데모에서 가져온 것입니다. "svgGroup"은 스파크 Group
이며 eventListener가 첨부되어 있습니다. 클릭하면 클릭 된 SVGElement
인스턴스가 반환됩니다. 나는 이것을 이해하려고 노력 중이므로 SVGElements
에 프로그램 방식으로 액세스 할 수 있습니다.
아래 함수는 eventListener에 의해 호출됩니다. arg로 클릭 된 DisplayObject
을 수신합니다.
SVGElement
를 확장
Sprite
public static function getSVGElement(object:DisplayObject):SVGElement {
while(object != null && !(object is SVGElement)){
object = object.parent;
}
return object as SVGElement;
}
질문 :
나 그것의 독서를 통해 걸어 봅시다.
목적 null이 아니고 객체가 널 OR 객체 따라서 본질적으로는 걸어되는 SVGElement 다음
break out of loop return object
경우 목적은 SVGElement
set object to its parent
아니지만 컨테이너가 SVGElement 인스턴스를 찾을 때까지 컨테이너. 나는 그 권리가 있니? 이 같은 뭔가 :
SVGElement
<-DisplayObject
<-DisplayObject
protected function svgGroup_clickHandler(e:MouseEvent):void {
selectedElement = DisplayUtils.getSVGElement(e.target as DisplayObject);
}
감사합니다. 나는 당신의 버전을 쉽게 이해했다. 나는 NOT (IS 객체) 구조 ('! (object is SVGElement))가 내 두뇌를 파괴하고 있다고 생각한다. –