2010-08-16 5 views
0

le code AS2 est:Comment adjuster l'AS2 en AS3?

MovieClip.prototype.setModel = function(m) 
{ 
    this.model = m; 
    this.drawModel(m); 
} 

MovieClip.prototype.drawModel = drawModel; 

J'ai essayé:

package 
{ 
    import flash.display.MovieClip; 

    public class Prototype extends MovieClip 
    { 
     public function Prototype() 
     { 
      super(); 
     } 

     public function setModel(m) 
     { 
      this.model = m; 
      this.drawModel(m); 
     } 

     public function setDrawModel(m) 
     { 
      this.drawModel = m; 
     } 

    } 
} 

, mais il n'y a pas "this.model" nither "drawModel (m)" dans MovieClip.

Une idée?

+0

"this.model" et "drawModel (m)" ne font pas partie de MovieClip, les chercher dans d'autres fichiers ".as" de la source d'origine de l'exemple de code que vous nous avez donné. –

+0

Puisque vous étendez MovieClip, je pense que vous devriez appeler 'this.prototype.whatever' au lieu de' this.whatever', cela n'est pas vérifié car je ne peux pas lancer un exemple maintenant mais essayez-le. – dierre

+0

@eiefai il y avait juste un seul fichier source –

Répondre

0

Vous avez défini model et drawModel. Je ne vois que setModel et setDrawModel et aucune variable.

Donc, si vous ajoutez ce qui suit dans la classe:

modèle privé var: le type;

Ensuite, votre this.model fonctionnera.

+0

Mais quelque chose ne va pas, parce que le modèle ne sert à rien. Aucune autre partie du code ne l'utilise. Mais dans le code AS2 il existe dans MovieClip et j'ai besoin de le configurer pour fonctionner. –

+0

ok, trouvé: dans ce snipet le modèle n'a pas vraiment besoin d'exister .. –

0
public class Whatever extends MovieClip 
{ 
    private var _model:DisplayObject; 

    public function set model(m:Object):void 
    { 
     this._model = m; 
     this.drawModel(); 
    } 

    private function drawModel():void 
    { 
     _model.graphics.beginFill(0); //etc... 
    } 
} 

Puis dans une autre classe, vous pouvez le faire

var whatever:Whatever = new Whatever(); 
whatever.model = new DisplayObject();