2010-07-05 3 views
1

이전 나는 다음과 같은 구조를 사용 :Flex에서 mxml 상속. "instanceof"와 "is"는 어떻게 작동합니까?

내 응용 프로그램에서 일반적인 논리에서 필요로 느낄
Canvas -> Screen1 
Canvas -> Screen2 

내가 할 다음 :

Canvas -> Screen 
Screen -> Screen1 
Screen -> Screen2 

그래서 난 내 코드에 적용 할 때

if(child is Screen){ 
    return child.localToGlobal(new Point()).x; 
} 

작동하지 않습니다! 디버거에서 볼 때 자식이 "Screen2"유형을 가지고 있지만 "Child is Screen"이 나에게 false를 반환합니다 ("child instanceof Screen"도 마찬가지 임).

+0

구조가 이해가 안됩니다. Screen1이 Canvas를 확장한다는 것을 의미합니까? – JeffryHouser

답변

2

내 생각) = "-keep 생성 - 액션 스크립트는"나는 Screen2-generated.as를 볼 수 있으며 내 추한 영어 죄송합니다 사전에

public class Screen3 extends screens.Screen 

감사가 포함되어있어 : 나는 컴파일러 키를 적용 할 때 이 특정 이름에 문제가 있습니다. 이미 Screen이라는 클래스가 있으며 (flash.display - http://livedocs.adobe.com/flex/3/langref/flash/display/Screen.html), Flex는 원래 화면의 인스턴스인지 확인합니다.

당신은 두 가지를 시도 할 수 있습니다 :

1) CustomScreen에 Screen 클래스 이름을 바꾸고 다시 시도하십시오.

2) 자녀가 전체 경로를 참조하여 클래스의 인스턴스인지 확인하십시오 (예 : if (child is screens.Screen)

+0

예! 그것에 대해 생각해 주셔서 감사합니다! – semen

관련 문제