2013-03-21 60 views
0

阶段似乎是从我的班级无法访问..几乎就像它不想被达成。我不知道会出现什么问题。这是类,因为我有它现在:添加装载机从阶段

package { 

import flash.events.*; 
import flash.display.*; 
import flash.net.*; 

public class gallery extends Sprite{ 

    private var imgPath:String = 'images/'; 
    private var imgCurrent:int = 0; 
    private var images:Array = new Array(); 
    private var iLoader:Loader; 

    function gallery() 
    { 
     this.addEventListener(Event.ADDED_TO_STAGE, onAddedToStage); 
    } 

    private function onAddedToStage(e:Event):void { 
     this.removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage); 
     sayStage(); 
    } 

    public function sayStage():void { 
     trace(this.stage); 
    } 

    public function setImgs(val:Array):void 
    { 
     for (var index:String in val){ 
      images[index] = val[index]; 
     } 
    } 

    public function getImgs():void 
    { 
     for (var index:String in images){ 
      trace(index + ':' + images[index] + ';'); 
     } 
    } 

    public function loadImg():void{ 

     iLoader = new Loader(); 
     iLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressStatus); 
     iLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderReady); 

     var fileRequest:URLRequest = new URLRequest(imgPath+'testimg.JPG'); 
     iLoader.load(fileRequest); 

    } 

    public function onProgressStatus(e:ProgressEvent) { 
     trace(e.bytesLoaded, e.bytesTotal); 
    } 

    public function onLoaderReady(e:Event) {  
     stage.addChild(iLoader); // error! 
    } 

    public function updateImgCurrent(val:int):void 
    { 
     imgCurrent = imgCurrent + val; 
    } 

    public function getImgCurrent():int 
    { 
     return(imgCurrent); 
    } 

} 

}

,这是我在我的SWF文件做:

var gal:gallery = new gallery(); 
var imagesGallery:Array = new Array(); 
imagesGallery.push('testimg.JPG'); 
imagesGallery.push('img2.JPG'); 
imagesGallery.push('img3.JPG'); 
gal.setImgs(imagesGallery); 
gal.loadImg(); 

的问题是增加iLoader到舞台。当我这样做,我收到错误:

TypeError: Error #1009: Cannot access a property or method of a null object reference. 
at gallery/onLoaderReady() 

为什么我不能访问舞台?或者,我想要达到什么样的目的,并且我是否应该以另一种方式来理解舞台?我真的希望你能提前帮助我和很多很多的感谢! :)

+0

this.stage.addChild()会导致同样的错误 – 2013-03-21 00:37:27

回答

2

如果没有将显示对象添加到显示列表中,则其stage属性设置为null(source)
将其添加到显示列表后,它将被设置为对舞台对象的引用。
试试这个:

var gal:gallery = new gallery(); 
addChild(gal); // this will trigger ADDED_TO_STAGE event and initialize stage property 
var imagesGallery:Array = new Array(); 
imagesGallery.push('testimg.JPG'); 
imagesGallery.push('img2.JPG'); 
imagesGallery.push('img3.JPG'); 
gal.setImgs(imagesGallery); 
gal.loadImg(); 
+0

非常感谢您! :) – 2013-03-21 18:47:50

相关问题