2012-06-17 48 views
1

我在將普通as3 swf定位到空中移動設備時遇到問題,因此我製作了一個簡單的測試應用程序來檢查並嘗試瞭解問題所在。 我正在使用flashdevelop 4和最新的AIR sdk。AIR Mobile:無法加載外部課程

我導出的SWC用一個簡單的MC與類名黑匣子出口 這裏是我的主代碼(包進口中省略,但我連進口的黑盒類):

public class Main extends Sprite 
{ 
    public var cajaNegra:MovieClip 

    public function Main():void 
    { 
     stage.scaleMode = StageScaleMode.NO_SCALE; 
     stage.align = StageAlign.TOP_LEFT; 
     stage.addEventListener(Event.DEACTIVATE, deactivate); 

     // touch or gesture? 
     Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT; 

     // entry point 
     cajaNegra = new BlackBox(); 
     addChild(cajaNegra) 
     cajaNegra.x = stage.stageWidth/2 
     cajaNegra.y = stage.stageHeight/2 
     } 
} 

一切正常,因爲它應該,但是當我在src文件夾中創建自定義BlackBox.as時,應用程序不顯示任何內容。我添加了一個名爲miTexto的文本字段。

BlackBox.as

public class BlackBox extends MovieClip 
{ 
    public var miTexto:TextField 

    public function BlackBox() 
    { 
     super(); 
     if (stage) init(); 
     else addEventListener(Event.ADDED_TO_STAGE, init); 


    } 

    private function init(e:Event = null):void 
    { 
     removeEventListener(Event.ADDED_TO_STAGE, init); 
     // entry point 
     miTexto.text = "changed text" 
    } 

} 

在這種情況下,調試器在線路miTexto.text = 「改變文本」拋出:

[Fault] exception, information=TypeError: Error #1009: Cannot access a property or method of a null object reference 

預先感謝。

回答

0

你忘了這麼做:addChild(miTextTo); ?

+0

我在Flash裏面BlackBox裏手動創建了它。 – dsurka

+0

好的,我也注意到你還沒有做miTexto = new TextField(); –

+0

嘗試過。如果我把它放在flash中,我必須做一個新的TextField()嗎?它不會用默認的替換它嗎? – dsurka