2010-09-16 89 views
0

如你所見,這是一個創建4個文本字段的類,我woona做的是這行代碼 first1 [i] .text = k1 [i]; 在for循環寫的隨機化數字在TextField的我該如何解決這個不好的錯誤

這是我的代碼

import flash.display.Sprite; 
      import flash.display.DisplayObjectContainer; 
     import flash.display.InteractiveObject; 
     import flash.text.TextField; 
     import flash.text.TextFormat; 
     import flash.events.MouseEvent; 
     import flash.events.KeyboardEvent; 

    public class addClass extends Sprite { 
         public var first1:Array = new Array(); 
           public var i:uint; 
           public var k1:Array = new Array(); 

       public function addClass() { 
         for (i= 1 ; i<= 5; i++) 
     {  first1[i]= createCustomTextField(100,(i*40),50,30); 
          k1[i]=Math.round(Math.random()*10); 
        // here is the problem 
         first1[i].text = k1[i]; 
       } 


       private function createCustomTextField(x:Number, y:Number, width:Number, height:Number):TextField 
       { 
       var result:TextField=new TextField ; 
       var format:TextFormat = new TextFormat(); 
       result.x=x; 
       result.y=y; 
       result.width=width; 
       result.height=height; 
       result.background=false; 
       result.border=true; 
       result.selectable=false; 
       result.restrict="0-9"; 
       format.size = 24; 
       format.color = 0xFFFFFF; 
       result.defaultTextFormat = format; 
       addChild(result); 
       return result; 
       } 
+0

這就是我有TypeError的錯誤:錯誤#1009:無法訪問空對象引用的屬性或方法。 – john 2010-09-16 20:20:56

+0

如何重新格式化問題中的代碼?我不能編輯它嗎? – dharm0us 2010-09-17 06:41:38

回答

1

您有什麼問題?編譯或運行時錯誤?如果是這樣,你收到了什麼錯誤?我的第一個猜測是,你需要將你的參考投射到您的文本字段,像這樣:

(first1[i] as TextField).text = k1[i]; 

另一個問題,我在你的代碼中看到的是您要添加的孩子在構造你的精靈。這可能會帶來問題,因爲在生命週期的後期,您不應該真的要添加孩子。

+0

這工作正常,但出現此錯誤TypeError:錯誤#1009:無法訪問空對象引用的屬性或方法 – john 2010-09-16 20:32:57

+0

當您通過調試器運行此,什麼是null? TextInput(first1 [i])或文本屬性(.text)? – 2010-09-16 21:45:59

+0

text property(.text) – john 2010-09-16 22:38:25

0
for (i= 1 ; i<= 5; i++) 

這個for循環,你正在使用似乎是不適當的,以產生四個文本字段。我想你想:

for (i= 0 ; i< 5; i++) 

而且韋德暗示你可能也想確保返回的文本框鑄造成數組元素正常。

+0

我會再次編輯這個 – john 2010-09-16 20:33:25

0

無法重現錯誤。此代碼正在工作,問題可能在其他地方。如果有的話,你應該這樣做:

 
first1[i].text = k1[i].toString(); 

但它仍然有效。另外,是的,你正在創造5盒。不是4

+0

我會檢查它。 – john 2010-09-17 11:26:54

相關問題