2010-08-02 9 views
1

Je suis un nouveau mem de as3. Aujourd'hui je fais un travail mais j'étais empilé. pls me aider:
Mon exemple:as3 - comment ajouter multi classe personnalisée dans un actif?

• J'ai un symbole dans la bibliothèque avec le nom de liaison: box_mc

import flash.display.MovieClip; 
import flash.events.Event; 
import Src.smoothAnimate; 

var box_is:MovieClip = new box_mc(); 
box_is.name = 'box_na'; 
addChild(box_is); 

var box_is:smoothAnimate = new smoothAnimate(); // ERROR 1151 HERE 

• J'ai une classe personnalisée:

package Src 
    { 
    import flash.display.*; 
    import flash.events.Event; 

    /** 
    * ... 
    * @author Trunglvt 
    */ 
    public class smoothAnimate extends MovieClip 
    { 
     private var currentW:Number; 
     private var currentH:Number; 
     private var endX:Number; 
     private var endY:Number; 
     private var sp:Number; 
     function smoothAnimate() { 
      trace('trace'); 
     } 

     public function changeSize(speed:Number, newW:Number, newH:Number) { 
      trace('test'); 
      this.endX = newW; // get new size 
      this.endY = newH; 
      this.sp = speed; 

      this.addEventListener(Event.ENTER_FRAME, onFrame); 
     } 
     private function onFrame(e:Event) { 
      e.target.currentW = e.target.width; 
      e.target.currentH = e.target.height; 

      e.target.width += (e.target.endX - e.target.currentW) * e.target.sp; 
      e.target.height += (e.target.endY - e.target.currentH) * e.target.sp; 

      if (Math.floor(e.target.width) == Math.floor(e.target.endX) || 
       Math.floor(e.target.height) == Math.floor(e.target.endY)) { 
       //stop function enterFrame here; 
       removeEventListener(Event.ENTER_FRAME, onFrame); 
      } 
     } 
    } 
} 

mais quand l'exécution est faire une erreur:

1151: A conflict exists with definition box_is in namespace internal.

je veux lors de l'exécution flash, le box_is sera ajouté dans l'étape, redimensionner par la fonction changesize.

Pls m'aider. Merci.

Répondre

2

Quand vous dites:

var box_is:smoothAnimate = new smoothAnimate(); 

Cette déclaration d'erreur. Vous avez déjà déclaré en box_is quand vous avez dit:

var box_is:MovieClip = new box_mc(); 

Deux var ne peuvent pas avoir le même nom dans la même portée. Si vous souhaitez réutiliser le symbole box_is, n'utilisez pas var. Juste réattribuer box_is:

box_is = new smoothAnimate(); 
+0

merci d'avoir édité ma question incorrecte :). et merci pour votre réponse :). je l'ai fait !. Je vous remercie. – Rueta

Questions connexes