anon255058
anon255058

Reputation:

Error #1010 actionscript 3

The counter displays sprites in place of number values. More experienced programmers have given me a clue. Why am I getting error # 1010.

Secondly, what am I not seeing that's so obvious? I wish I went in to this with a better foundation in actionscript 3, but I'm reading and doing my best.

WHAT I SEE
-dollar sign indicates a variable or array "$numbers"
-import flash.utils.Dictionary; "indicates an associative string"
-Error #1010: A term is undefined and has no properties
-is the associative string is fooling me? "maybe I set no values, duh"
-are the property of my symbols are set wrong?

numbers.fla
-MovieClip named "mc-NumberImage" Class "NumberImage" -Bitmaps "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} );
    }
   }
  }

 }

}

ERROR MESSAGE

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()

Upvotes: 2

Views: 5714

Answers (2)

anon255058
anon255058

Reputation:

"noob hater creates a debug riddle, hmmm"
moveableNumber_mc does not exist

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} );

"thanks badass Ed"

Upvotes: 0

Todd Moses
Todd Moses

Reputation: 11029

It sounds like you are accessing an undefined index in your array in the file NumbersView.as.

_listItems[i]

In your for loop for _listItems:

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

You set the _listItems to 0 to 8.

Then in your setTime for loop:

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

You go to the length of the Array to access _listItems[i].

Is it possible that the length of this array is more than 8? If so then that could cause the error.

Upvotes: 1

Related Questions