2013-03-21 41 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