2010-03-23 5 views
1

주 클래스의 함수를 실행하려고하지만 캐스팅을해도 작동하지 않습니다.AS 3.0의 참조 상위 클래스 함수

private function updateplaylist(){ 
     //xml to string 
     var xmls:String= xml.toXMLString(); 
     trace('playlist updated debug point'); 
     MovieClip(this.parent).test();} 

내가 무슨 일을하고있는 중이 야 :이 메인 클래스 코드

package{ 
import flash.display.MovieClip; 
import rpflash.communication.RPXMLReader; 

public class Main extends MovieClip{ 

    var reader:RPXMLReader = new RPXMLReader(); 

    public function Main(){ 
     trace('Main actionscript loaded'); 

     } 

    public function test(){ 
     trace('test worked');} 

} 
} 

이 함수가 호출하려고입니다

TypeError: Error #1009: Cannot access a property or method of a null object reference. 
at rpflash.communication::RPXMLReader/updateplaylist() 
at rpflash.communication::RPXMLReader/dataHandler() 
at flash.events::EventDispatcher/dispatchEventFunction() 
at flash.events::EventDispatcher/dispatchEvent() 
at flash.net::XMLSocket/scanAndSendEvent() 

이 오류를 얻을? 그렇지 않으면 그 parent 속성이 될 것입니다 - 당신의 RPXMLReaderparent이없는 것처럼

답변

1

그것은 당신이 당신의 Main 클래스의 자식으로 추가해야 RPXMLReaderMovieClip (또는 Sprite, 또는 DisplayObject 등) 확장 가정 ... 보인다 null :

클래스는 표시 목록의 일부가 아닌 독자, 당신은 부모 표시 객체로 곧에 따라서 addChild 전화를 통과해야 표시 목록에 무언가를 추가 할 수
public class Main extends MovieClip{ 
    var reader:RPXMLReader = new RPXMLReader(); 

    public function Main(){ 
     addChild(reader); 
    }... 
+0

감사합니다. – vasion

1

은 곧 자식 표시 객체가 될 매개 변수

어쨌든이 방법은 수업을 시도하고 의사 소통하는 것은 정말 나쁜 방법입니다. RPXMLReader에서 이벤트를 파견 한 다음 Main 클래스에서 이벤트를 수신 대기해야합니다.

+0

나는 그것에 대해 조사 할 것이다. 이벤트는 실제로 이것을 수행하는 더 깨끗한 방법처럼 보입니다. – vasion