2011-04-09 1 views
0

Je continue à obtenir cette erreur:flash UIComponent ... ne fonctionne pas ... encore une fois

TypeError: Error #1006: setSize is not a function. 
    at circles::SpiroUI/doSliders()[/Users/wakemana/Documents/Adobe Flash Builder 4/SpiroPaint/src/circles/SpiroUI.as:74] 
    at circles::SpiroUI()[/Users/wakemana/Documents/Adobe Flash Builder 4/SpiroPaint/src/circles/SpiroUI.as:42] 
    at circles::Spirograph()[/Users/wakemana/Documents/Adobe Flash Builder 4/SpiroPaint/src/circles/Spirograph.as:115] 
    at circles_fla::MainTimeline/frame1()[circles_fla.MainTimeline::frame1:2] 

J'ai inclus l'importation fl.controls.* et fl.events.* et je l'ai également fait que le composant d'interface utilisateur curseur est inclus dans le document bibliothèque.

L'interface utilisateur continue à scintiller d'une manière étrange, semble être redessiner les composants dans chaque image ou quelque chose. J'avais tout cela avant, mais depuis que j'ai introduit de nouvelles classes, ça a cessé de fonctionner. Le reste du dessin dans l'application fonctionne, seuls les composants de l'interface utilisateur clignotent et ne fonctionnent pas.

Aide apprécié :)

Répondre

1

Quelque part quelque chose n'est pas défini comme le compilateur ne trouve pas l'objet de la fonction réside dans.

Votre pile a
à cercles :: SpiroUI/doSliders() ... /circles/SpiroUI.as:74

Si possible, vous souhaiterez peut-être mettre à jour la question avec au moins cette ligne pour voir comment setSize est appelé.

Une autre option à essayer est de définir un point d'arrêt à la ligne 74 et d'inspecter ce qui est disponible pour l'objet avant qu'il n'atteigne cette erreur.

J'ai suivi ce que vous aviez pour les composants de l'interface utilisateur pour m'assurer que l'erreur n'était pas antérieure.

J'ai une petite classe de document slider

import flash.display.Sprite; 
    public class slider extends Sprite 
    { 
     var sp:SpiroUI; 
     public function slider() 
     { 
      sp = new SpiroUI(); 
      sp.doSliders(); 
      sp.x = 100; 
      sp.y = 100; 
      addChild(sp); 

     } 
    } 

Et puis je fait une supposition quant à la façon dont vous aviez votre SpiroUI,

import fl.controls.Slider; 

public class SpiroUI extends Slider 
{ 
    public function SpiroUI() 
    { 
     super(); 
    } 

    public function doSliders():void 
    { 
     setSize(10,10); 
    } 

} 

Aucun moyen de savoir à Sûre pour que, essayé divers façons de reproduire l'erreur, mais normalement je m'attendrais à ce que si l'on appelait une fonction dans un swf qui n'est pas à la racine. SetSize() EST une fonction dans chaque objet Slider.

+0

Merci pour l'effort mate, il n'y a aucune raison claire pour moi pourquoi cela se produit. C'est peut-être parce que j'ai essayé d'utiliser Flash Builder et mis à jour les paramètres du compilateur pour inclure les composants Flash UI ... encore une fois, cela ne devrait pas affecter ... * ennuyé et confus * – Alex

+0

Ok compris ... c'était parce que de l'exportation Builder ou quelque chose comme ça .. Il y avait un certain conflit avec Flex Component Base qui a été utilisé dans ce processus. J'ai remplacé tous les éléments de la bibliothèque, et le problème a disparu. Merci encore pour l'effort :) – Alex

1

il semble que votre SpiroUI classe essaie d'appeler la méthode setSize qui n'est pas présenté dans la classe.

Rob

+0

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/fl/controls/Slider.html#setSize() – Alex

+1

De votre message d'erreur et le reste de la question, je n'ai pas vu que vous faites quelque chose avec le Slider à part vous l'avez dans la bibliothèque! Bonne chance – robertp