2010-02-17 6 views
2

Le compteur affiche sprites en place des valeurs numériques. programmeurs plus expérimentés me ont donné un indice. Pourquoi suis-je obtiens l'erreur # 1010.Erreur # 1010 actionscript 3

En second lieu, ce que je ne vois pas qui est si évident? J'aurais aimé avoir une meilleure base dans ActionScript 3, mais je lis et fais de mon mieux.

QU'EST-CE QUE JE VOIS
signe -Dollar indique une variable ou un tableau "nombres $"
-import flash.utils.Dictionary; « Indique une chaîne associative »
-erreur # 1010: Un terme est défini et n'a pas de propriétés
-Est la chaîne associative me trompe? « Peut-être que je mets aucune valeur, duh »
-sont la propriété de mes symboles sont mal réglé?

numbers.fla
-MovieClip nommé "mc-NumberImage" classe "NumberImage" -Bitmaps "number_0.jpg à 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}); 
    } 
    } 
    } 

} 

} 

MESSAGE D'ERREUR

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

quelle ligne obtenez-vous l'erreur s'il vous plaît? –

+0

"Ceci est le message d'erreur" TypeError: Erreur # 1010: Un terme est indéfini et n'a aucune propriété. \t à NumbersView/setTime() \t à NumberDocumentClass/incrementCounter() \t à flash.utils :: Timer/_timerDispatch() \t à flash.utils :: Timer/tick() –

+1

Ceci est probablement pas la cause de votre erreur, mais substr (-9, 9) est le même que substr (0, 9). – Selene

Répondre

1

On dirait que vous accédez à un index non défini dans votre tableau dans le fichier NumbersView.as.

_listItems[i] 

Dans votre boucle pour _listItems:

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

Vous définissez les _listItems à 0 à 8.

Ensuite, dans votre setTime boucle:

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

Vous allez à la longueur du tableau pour accéder à _listItems [i].

Est-il possible que la longueur de ce tableau est plus de 8? Si oui, cela pourrait provoquer l'erreur.

0

"Noob crée une énigme haïsseur de débogage, hmmm"
moveableNumber_mc n'existe pas

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

"merci Badass Ed"