2010-09-16 6 views
0

как вы видите, это класс create 4 text Поля, что я woona do в этой строке кода first1 [i] .text = k1 [i]; в цикл для записи чисел Randomize в TextFieldsКак я могу решить эту плохую ошибку

вот мой код

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

+0

как переформатировать код в вопросе? я не могу его отредактировать? – dharm0us

ответ

1

Какие проблемы вы с? Ошибки компиляции или времени выполнения? Если да, какая ошибка вы получаете? Мой первый думаю, что вам нужно, чтобы бросить вашу ссылку в текстовое поле, что-то вроде этого:

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

Другой вопрос, который я вижу в вашем коде, что вы добавляете детей в свой спрайт в конструкторе. Это может быть проблематичным, поскольку на самом деле вы не должны добавлять детей дольше на жизненном цикле.

+0

это работает нормально, но эта ошибка появляется TypeError: Ошибка # 1009: Не удается получить доступ к свойству или методу ссылки на нулевой объект – john

+0

Когда вы запускаете это через отладчик, что такое null? TextInput (first1 [i]) или свойство text (.text)? –

+0

текстовое свойство (.text) – john

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

Хорошо, что для цикла, который вы используете, кажется неправильным для создания четырех текстовых полей. Я думаю, что вы хотите:

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

Кроме того, как предложил Уэйд вы можете также хотите убедиться, что текстовое поле возвращается отливают в элемент массива правильно.

+0

Я отредактирую это снова – john

0

Не удалось воспроизвести ошибку. Этот код работает, проблема может быть в другом месте. Во всяком случае, вы должны это сделать:

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

но он все еще работает. Кроме того, да, вы создаете 5 ящиков. not 4

+0

Я проверю его. – john

Смежные вопросы