как мне решить эту ошибку - PullRequest
       2

как мне решить эту ошибку

0 голосов
/ 16 сентября 2010

как вы видите, это класс создания 4 текстовых полей, что я делаю в этой строке кода first1 [i] .text = k1 [i]; в цикле for для записи случайных чисел в 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;
                }

Ответы [ 3 ]

1 голос
/ 17 сентября 2010

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

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

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

0 голосов
/ 17 сентября 2010

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

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

, но все равно работаетТакже да, вы создаете 5 коробок.не 4

0 голосов
/ 17 сентября 2010
 for (i= 1 ; i<= 5; i++)

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

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

Также, как предложил wade, вы также можете убедиться, что возвращаемое текстовое поле правильно приведено к элементу массива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...