错误#1010 actionscript 3

时间:2010-02-17 15:09:12

标签: flash actionscript-3 string

计数器显示精灵代替数字值。更有经验的程序员给了我一些线索。为什么我收到错误#1010。

其次,我没有看到那么明显的是什么?我希望我在动作3中有更好的基础,但我正在阅读并尽力而为。

我看到了什么
-dollar符号表示变量或数组“$ numbers”
-import flash.utils.Dictionary; “表示关联字符串”
-Error#1010:术语未定义且没有属性
- 关联字符串是在愚弄我吗? “也许我没有设定价值,呃” - 我的符号的属性设置错了?

numbers.fla
-MovieClip命名为“mc-NumberImage”类“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} );
    }
   }
  }

 }

}

错误消息

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 个答案:

答案 0 :(得分:1)

听起来您正在 NumbersView.as 文件中访问数组中未定义的索引。

_listItems[i]

在_listItems的for循环中:

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

将_listItems设置为0到8。

然后在你的setTime for循环中:

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

您转到数组的长度以访问_listItems [i]。

这个数组的长度是否超过8?如果是这样,则可能导致错误。

答案 1 :(得分:0)

“noob hater创造了一个调试谜语,嗯” 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} );

“感谢badass Ed”