2012-03-19 3 views
-1

J'écris un programme en AS3. C'est le contenu exact ne semble pas avoir d'importance ici. J'ai essentiellement 4 classes, réparties en 4 fichiers. La chose est, il ne peut pas trouver un de ces fichiers, et je ne peux pas comprendre pourquoi. Je l'ai vérifié plusieurs fois et j'ai même demandé à mon professeur de le vérifier, et nous ne pouvons toujours pas trouver ce qui ne va pas. Est-ce que quelqu'un d'autre a eu un problème similaire, ou avez-vous une idée sur la façon de résoudre ce problème?Fichier introuvable AS3

EDIT: Ligne 37 1046: le type n'a pas été trouvé ou n'était pas une constante de compilation: CustomTextField. Ligne 37 1180: Appel à une méthode éventuellement non définie CustomTextField. (Deux fois)

package 
{ 
    // Import stuff 
    import flash.display.MovieClip; 
    import flash.text.TextField; 
    import flash.events.MouseEvent; 
    import flash.events.Event; 
    import flash.utils.*; 

public class CustomButton extends MovieClip 
{ 
    // Private variables: 

    private var animationsListAR_:Array = [];// Array for the animations. 
    private var textArea_:CustomTextField = new CustomTextField(); 
    private var curState_:int = 1;// The current state (1 = Normal, 2 = Pressed, 3 = Over). 
    private var active_:Boolean; 
    private var type_:String;// Multi choice, single choice, normal. 
    private var group_:int; 
    private var animated_:Boolean = false; 

    // Protected variables: 
    // Public variables: 

    // Constructor: 
    // This constructor sets up the event listeners and the button's properties. 
    public function CustomButton(animationAR:Array, buttonlabel:String = "Hello", animated:Boolean = false, active:Boolean = true, type:String = "free", group:int = 0) 
    { 
     this.gotoAndStop(curState_); 

     // Prevents the start of the animations. 

     // Deals with the text inside the button. 
     this.buttonMode = true; 
     active_ = active; 
     this.addChild(textArea_); 


     if (animated == true) 
     { 
      animated_ = true; 
      /* 
      animationsListAR_[0] = 1; 

      for (var i:int = 1; i < animationAR.length; i++) 
      { 
      animationsListAR_[i] = animationAR[i - 1]; 
      } 
      */ 
     } 

     // If active_ is true the game will add EventListeners to this object. 
     if (active_ == true) 
     { 
      this.addEventListener(MouseEvent.MOUSE_DOWN,mouseOverHandler); 
      this.addEventListener(MouseEvent.MOUSE_OVER,mouseOverHandler); 
      this.addEventListener(MouseEvent.MOUSE_OUT,mouseOutHandler); 
     } 

     // Needed to monitor the active_ var. 
     this.addEventListener(Event.CHANGE, activeChangeHandler); 
    } 

    // This function swaps the active_ variable value and calls activeChangeHandler. 
    public function ActiveChange() 
    { 
     active_ = ! active_; 
     this.dispatchEvent(new Event(Event.CHANGE)); 
    } 

    public function mouseOverHandler(evt:MouseEvent) 
    { 
     if(evt.type == MouseEvent.MOUSE_DOWN) 
     { 
      curState_ = 2; 

      if (animated_ == true) 
      { 
       loopSegment((animationsListAR_[1] + 1), animationsListAR_[2]); 
      } 
      else 
      { 
       this.gotoAndStop(curState_); 
      } 

      this.addEventListener(MouseEvent.MOUSE_UP, function(evt:MouseEvent):void 
            { 
             evt.target.removeEventListener(MouseEvent.MOUSE_DOWN, arguments.callee); 
             curState_ = 3; 
             evt.target.gotoAndStop(curState_); 
            }); 
     } 

     else if(evt.buttonDown != true) 
     { 
      curState_ = 3; 

      if (animated_ == true) 
      { 
       loopSegment((animationsListAR_[2] + 1), animationsListAR_[3]); 
      } 
      else 
      { 
       this.gotoAndStop(curState_); 
      } 
     } 

     dispatchEvent(new CustomButtonEvent(CustomButtonEvent.OVER)); 
    } 

    public function mouseOutHandler(evt:MouseEvent) 
    { 
     curState_ = 1; 

     if (animated_ == true) 
     { 
      loopSegment((animationsListAR_[0]), animationsListAR_[1]); 
     } 
     else 
     { 
      this.gotoAndStop(curState_); 
     } 

     dispatchEvent(new CustomButtonEvent(CustomButtonEvent.OUT)); 
    } 

    public function activeChangeHandler(evt:Event) 
    { 
     if (active_ == true) 
     { 
      this.addEventListener(MouseEvent.CLICK,mouseOverHandler); 
      this.addEventListener(MouseEvent.MOUSE_OVER,mouseOverHandler); 
      this.addEventListener(MouseEvent.MOUSE_OUT,mouseOutHandler); 
     } 
     else 
     { 
      this.removeEventListener(MouseEvent.CLICK,mouseOverHandler); 
      this.removeEventListener(MouseEvent.MOUSE_OVER,mouseOverHandler); 
      this.removeEventListener(MouseEvent.MOUSE_OUT,mouseOutHandler); 
     } 

     // modifyMaskButton(); 
    } 

    /* 
    public function modifyMaskButton():void 
    { 
    if (active_ = true) 
    { 

    } 
    else 
    { 

    } 
    } 
    */ 
    public function playSegment(begin:int, end:int):void 
    { 
     if (begin != end) 
     { 
      gotoAndPlay(begin); 
      addEventListener(Event.ENTER_FRAME,function(evt:Event):void 
        { 
         if(currentFrame == end) 
         { 
          stop(); 
          removeEventListener(Event.ENTER_FRAME, arguments.callee); 
         } 
        }); 
     } 
     else 
     { 
      this.gotoAndStop(end); 
     } 
    } 

    // This loops continuosly an animation. Should, at least... 
    public function loopSegment(begin:int, end:int):void 
    { 
     if (begin != end) 
     { 
      gotoAndPlay(begin); 
      addEventListener(Event.ENTER_FRAME,function(evt:Event):void 
        { 
         if(currentFrame == end) 
         { 
          gotoAndPlay(begin); 
         } 
        }); 
     } 
     else 
     { 
      this.gotoAndStop(end); 
     } 
    } 
} 
} 

Deuxième fichier:

package 
{ 
import flash.display.MovieClip; 
import flash.text.TextField; 

public class CustomTextField extends MovieClip 
{ 
    private var textArea:TextField; 
    private var boldText:TextFormat = new TextFormat(); 

    function CustomTextField() 
    { 
     textArea = new TextField; 
    } 

    override function CustomTextfield(labelText:String, font:String = "Arial", color:uint = 0xFFFFFFFF, size:uint = 10) 
    { 
     textArea = new TextField; 
     boldText.font = font; 
     boldText.color = color; 
     boldText.size = size; 
     this.text = labelText; 
    } 

    function changeFont(font:String):void 
    { 
     boldText.font = font; 
     updateText(); 
    } 

    function changeColor(color:uint):void 
    { 
     boldText.color = color; 
     updateText(); 
    } 

    function changeSize(size:uint):void 
    { 
     boldText.size = size; 
     updateText(); 
    } 

    function embedText(choice:Boolean):void 
    { 
     this.embedFonts = choice; 
    } 

    function updateText():void 
    { 
     this.setTextFormat(boldText); 
    } 
} 
} 
+1

Vous ne pouvez pas vous attendre à obtenir une réponse à une question, qui dit simplement que vous avez un problème. Donnez-nous des messages d'erreur, une description de la structure du projet et/ou le code source lui-même. Essayez de décomposer votre problème en quelque chose facilement compris. – devsnd

+0

@twall Ceci n'est pas seulement utile pour nous, mais souvent, lorsque vous résolvez votre problème, vous finissez par trouver la réponse. –

+0

Il est très peu probable que quelqu'un dise "Ah oui, c'est un problème de Flash connu quand vous avez 4 fichiers", vous devriez décrire les choses un peu plus loin. – Kodiak

Répondre

1

Cocher cette ligne dans le second fichier:

override function CustomTextfield(labelText:String, font:String = "Arial" 

"CustomTextfield" // devrait être "CustomTextField", dans votre script manquant la lettre majuscule.

Je pense que vous obtenez 2 erreurs que cette fonction est déclenchée deux fois dans le script ou certains changements connexes et laissez-nous savoir.

+0

Bien sûr, c'est dans le même répertoire. Oui, ils sont correctement référencés. Quoi qu'il en soit, j'ai ajouté le code source. – MKII

+0

J'ai fait de nouveaux fichiers .as et .fla, puis copié et collé tout. Il a trouvé le fichier. Je ne sais toujours pas ce que ça pourrait être. Quoi qu'il en soit, la ligne ci-dessus a corrigé l'erreur qui est apparue par la suite. – MKII

+0

bien je l'ai encore aidé, lol pourrait être un bug de la mémoire..iv eu des choses étranges se produisent dans cs5, le contenu chargé cesse soudainement d'apparaître sans erreurs, donc je devais recommencer comme votre auto.hope est bien .. voté 1 place :) – joshua