2013-06-23 7 views
1

null로 설정된 사용자 정의 객체 변수가 있다고 가정하고 유형 정의를 확인하려고합니다. 어떻게해야합니까?Actionscript 사용자 정의 객체 정의 유형 확인 (실제 유형이 아님)

var a:MyObject = null; 

// how do I check if a is MyObject? 
// 
// a is MyObject == false 
// a instanceof MyObject == false 
// getQualifiedClassName(a) <-- Exception 
// typeof(a) == "object" 
// describeType(a) <-- Exception 
// a.constructor <-- Exception 
// a.prototype <-- Exception 
+0

나는 그것이 가능하지 않다고 생각합니다. 어쨌든 정의를 확인해야하는 이유는 무엇입니까? – ndm

답변

0

나는 당신이 질문에있는 모든 예를 오해하고 있다고 생각합니다.

변수와 연결된 유형을 확인하지 않습니다. 변수에 지정된 인스턴스의 유형을 확인합니다. 이것은 당신이, 당신이 실제로 여기 false을 얻을 것입니다 않습니다 생각하는 방식 일 경우

var prop:DisplayObject = new MovieClip(); 
trace(prop is MovieClip); // true 

: 여기에 귀하의 예를 이해하지 않는 이유의 좋은 예입니다.

변수를 생성하고 유형을 지정하면 컴파일러에서 해당 속성에 할당 된 것으로 예상되는 유형의 인스턴스를 컴파일러에 알려주고 해당 유형의 인스턴스가 아닌 것이 있으면 오류를 던집니다. 예상되는 유형이 할당됩니다.

변수가 예상하는 유형을 결정하는 방법이 없다고 생각합니다. 더욱이 런타임에 변수가 어떤 유형인지를 확인해야하는 필요성을 느낀다면 무언가 잘못된 것이 있습니다.

+0

describeType (a)을 수행하고 factory.implementsInterface 태그를 통해 확인하는 것은 어떻습니까? 이것이 효과가 있을지 궁금하다. –

+0

@ san.chez 사용해보기. – Marty

+0

@ san.chez 이미 테스트했는데 예외가 throw됩니다. – Ofir

관련 문제