Ошибка # 1010 actioncript 3 - PullRequest
       6

Ошибка # 1010 actioncript 3

2 голосов
/ 17 февраля 2010

Счетчик отображает спрайты вместо числовых значений. Более опытные программисты дали мне подсказку. Почему я получаю ошибку # 1010.

Во-вторых, что я не вижу, это так очевидно? Хотелось бы, чтобы я подошел к этому с лучшей основой в ActionScript 3, но я читаю и прилагаю все усилия.

ЧТО Я ВИДУ
знак доллара указывает на переменную или массив «чисел»
-импорт flash.utils.Dictionary; «указывает ассоциативную строку»
-Ошибка # 1010: термин не определен и не имеет свойств
- ассоциативная строка обманывает меня? "может быть, я не установил никаких значений, дух"
- свойства моих символов установлены неправильно?

numbers.fla
-MovieClip с именем "mc-NumberImage" Класс "NumberImage" Бит-карты "number_0.jpg to number_9.jpg"

NumberDocumentClass.as"NumberDocumentClass"

package {
 import flash.display.Sprite;
 import flash.utils.Timer;
 import flash.events.TimerEvent;

 public class NumberDocumentClass extends Sprite {

  private var timer:Timer = new Timer(10);
  private var count:int = 0;
  private var fcount:int = 0;
  private var numbers:NumbersView;

  public function NumberDocumentClass() {
   timer.addEventListener(TimerEvent.TIMER, incrementCounter);    
   timer.start();   
   numbers = new NumbersView();
   addChild(numbers);
  }

  function incrementCounter(event:TimerEvent) {    
   count++;    
   fcount=int(count*count/1000);//starts out slow... then speeds up   
   numbers.setTime(formatCount(fcount));
  }  

  function formatCount(i:int):String {   
   return ("000000000" + i).substr(-9, 9); 
  } 
 }
}

NumbersView.as

package  
{
 import flash.display.DisplayObject;
 import flash.display.MovieClip;
 import flash.utils.Dictionary;
 import flash.events.Event;
 import caurina.transitions.Tweener;


 public class NumbersView extends MovieClip
 {

  private var _listItems:Array = new Array();


  public function NumbersView() 
  {
   var item:NumberImage;
   for (var i:Number = 0; i < 9; i++) {
    item = new NumberImage();
    addChild(item);
    item.x = i * item.width;
    _listItems.push(item);
   }

  }


  public function setTime($number:String):void {
   var nums:Array = $number.split("");
   for (var i:Number = 0; i < nums.length; i++) {
    if (int(nums[i]) == 0) {
     Tweener.removeTweens(_listItems[i].moveableNumber_mc);
     if (_listItems[i].moveableNumber_mc.y < 0) {
      _listItems[i].moveableNumber_mc.y = 120;
     }
     Tweener.addTween(_listItems[i].moveableNumber_mc, { y: 0, time:.3 } );
    } else {
     Tweener.addTween(_listItems[i].moveableNumber_mc, { y: -120 * int(nums[i]), time:.3} );
    }
   }
  }

 }

}

СООБЩЕНИЕ ОБ ОШИБКЕ

TypeError: Error #1010: A term is undefined and has no properties.
    at NumbersView/setTime()
    at NumberDocumentClass/incrementCounter()
    at flash.utils::Timer/_timerDispatch()
    at flash.utils::Timer/tick()

Ответы [ 2 ]

1 голос
/ 17 февраля 2010

Похоже, вы обращаетесь к неопределенному индексу в вашем массиве в файле NumbersView.as .

_listItems[i]

В вашем цикле for для _listItems:

for (var i:Number = 0; i < 9; i++) {

Вы устанавливаете _listItems от 0 до 8.

Тогда в вашем setTime для цикла:

for (var i:Number = 0; i < nums.length; i++) {

Вы переходите на длину массива, чтобы получить доступ к _listItems [i].

Возможно ли, что длина этого массива больше 8? Если это так, то это может вызвать ошибку.

0 голосов
/ 18 февраля 2010

"Нуб ненавистник создает загадку отладки, ммм"
moveableNumber_mc не существует

36. Tweener.removeTweens(_listItems[i]);
37. if (_listItems[i].y < 0) {
38. _listItems[i].y = 120;
39. }
40. Tweener.addTween(_listItems[i], { y: 0, time:.3 } );
41. } else {
42. Tweener.addTween(_listItems[i], { y: -120 * int(nums[i]), time:.3} );

"спасибо, задира Эд"

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