2010-08-08 99 views
0

我正在构建一个仅限AS3的项目,并且运行时出现错误,提示“无法访问空对象引用的属性或方法”。Actionscript 3空对象错误消息

这里是我的代码:

main.as

 public class videoMain extends Sprite{ 

     private var videoPlayer:Player; 

     public function videoMain(){ 
     loadPlayer() 
     loadProgress(); 
     } 

     private function loadProgress():void{ 

     //the code below gave me null object error.....  
     var byteLoaded:Number=videoPlayer.videoBytesLoaded; //the problem code 
     var byteTotal:Number=videoPlayer.videoBytesTotal; //the problem code 

     var percent:Number=Math.floor(byteLoaded/byteTotal)*100; 
     } 

     private function loadPlayer():void{ 

     videoPlayer= new Player(); 
     videoPlayer.createPlayer(); 
    } 

}

Player.as

public function createPlayer():void{ 

    _loader = new Loader(); 
    _loader.contentLoaderInfo.addEventListener(Event.INIT, onLoaderInit); 
    _loader.load(new URLRequest(playerType)); 

    } 

public function get videoBytesLoaded():Number{ 
    return _Player.getVideoBytesLoaded(); //youtube api method 
    } 

public function get videoBytesTotal():Number{ 
    return _Player.getVideoBytesTotal; //youtube api method 
    } 

private function onLoaderInit(event:Event):void { 
    _Player=_loader.content; 
     //only show part of codes.... 
    } 

I appreciate any help....Thanks!!!!! 

回答

1

_Player只定义Event.INIT已烧成,后定义_Player值之前的任何调用都会引发错误。

你应该,至少,有这样的:

public function videoMain(){ 
    loadPlayer() 
    } 

private function onLoaderInit(event:Event):void { 
    _Player=_loader.content; 
    //only show part of codes.... 
    loadProgress(); 

} 

但进展事件不是静态的,所以真的是你应该以听变化值有enterFrame事件监听器......

private function onLoaderInit(event:Event):void { 
    _Player=_loader.content; 
    //only show part of codes.... 

    addEventListener(Event.ENTER_FRAME , enterFrameListener); 
} 

private function enterFrameListener(event:Event):void 
{ 
    loadProgress(); 
    // and here you add some way to remove this event listener when 
    // the video is fully loaded 
} 
+0

不错.....感谢您的回复....! – FlyingCat 2010-08-08 03:28:37