2009-10-03 5 views
0

J'ai un var pour obtenir la largeur des vignettes, et il est défini au début de mon code de classe. Ensuite, je mets à jour cette var dans une fonction qui est mise à jour avec le redimensionnement de la scène.AS3 - Mise à jour de Vars

function x(){ 
    var thumbW:thumbnails.width; 
    //tracing thumbW here returns the updated value. Perfect! 
} 

Ensuite, j'essaie d'obtenir le thumbW valeur dans une fonction qui fait défiler les vignettes

function y(){ 
    trace(thumbW); 
} 

Mais, dans y fonction, il ne retourne que NaN, alias Not a Number , me disant que la valeur de cette variable n'est pas définie ni mise à jour.

Je me demande pourquoi cela se passe? Pourquoi je ne peux pas mettre à jour ce var? Comment ceci peut être fait?

Répondre

0

Il y a quelque chose qui ne va pas dans votre fonction x.

Si vous souhaitez accéder à la variable globale thumbW, vous devez l'utiliser directement comme thumbW = 123. L'utilisation de var va déclarer une autre variable locale dans la fonction.

Et, pourquoi vous mettez le drapeau thumbnails.width? Il devrait y avoir une erreur de compilation! Faute de frappe?

Le code entier pour fonction x doit être:

function x():void { 
    thumbW = thumbnails.width; 
} 

BTW, vous devriez en savoir plus sur la portée des variables. Il y a an article from adobe help.

+0

Thak vous, Andy Li! C'était une erreur primitive, mais parfois nous avons besoin d'un esprit dégagé pour échapper à ce genre de piège. Thak vous, encore une fois !! –

+0

aussi, n'ont pas une fonction nommée x() qui va entrer en conflit avec des tonnes de choses! – grapefrukt