2017-06-15 2 views
0

Ich habe eine FLA-Datei, die auf "Adobe Flash Professional CS5" entwickelt wurde. Es verwendet Aktionsskript 2.0ActionScript 2.0-Code in Aktionsskript 3.0 migrieren

Jetzt muss ich diese Fla-Datei zu "Adobe Animate CC 2017" migrieren. Wenn FL-Datei in der IDE laden und veröffentlichen, begegne ich unten Fehler.

Symbol 'AAAA', Layer 'Definition', Frame 1, Zeile 20, Spalte 8 1061: Aufruf einer möglicherweise undefinierten Methode registerClass über eine Referenz mit statischer Klasse.

unten ist der Code-Schnipsel

// The default value for Severity parameter must be negative. 
function AAAAClass() { 
    this.setID(this.mID); 
    this.setStatus(this.mStatus); 
} 

AAAAClass.prototype = new MovieClip(); 

AAAAClass.prototype.setID = function(variable) { 
    this.ID.text = variable; 
}; 

AAAAClass.prototype.setStatus = function(variable) { 
    this.Status.text = variable; 
    this.Status._visible = false; 
}; 

Object.registerClass("AAAA", AAAAClass); // Compiler shows error at this statement 
+1

as2.0 unterstützte keine geeigneten Klassen, daher 'Object.registerClass', stattdessen erstellen Sie eine [as3.0 class] (http://help.adobe.com/de_DE/FlashPlatform/reference/actionscript/3 /Class.html) benannte 'AAAA' und definiert die Methoden/Eigenschaften von' AAAAClass' im obigen Code (zB 'setID()', 'setStatus()') –

+0

Danke für die Hilfe !!! –

+0

Gibt es ein Tool, das bei der Konvertierung von AS2.0 in 3.0 helfen kann? Wo finde ich das nützliche Dokument für AS 3.0? –

Antwort

1

Sie können einige davon auf dem AS2-Code basiert machen:

package { 

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

    public class AAAA extends MovieClip { 

     private var mID:String = "default ID"; 
     private var mStatus:String = "default status"; 

     //private var ID:TextField; 
     //private var Status:TextField; 

     public function AAAA(){ 
      this.setID(this.mID); 
      this.setStatus(this.mStatus); 

      //ID = new TextField(); 
      //Status = new TextField(); 
     } 

     public function setID(variable:String):void{ 
      this.mID = variable; 
      this.ID.text = this.mID; 
     }; 

     public function setStatus(variable:String):void{ 
      this.mStatus = variable; 
      this.Status.text = this.mStatus; 
      this.Status.visible = false; 
     }; 

     override public function toString():String{ 
      return "[AAAA mID=" + mID + " mStatus=" + mStatus + " ]"; 
     } 

    } 

} 
:

// The default value for Severity parameter must be negative. 
function AAAAClass() {          //this is the "constructor" 
    this.setID(this.mID);      
    this.setStatus(this.mStatus); 
} 

AAAAClass.prototype = new MovieClip();      //this means the class extends MovieClip (probably a Movie Clip Exported for Actionscript in the .fla file's Library) 

AAAAClass.prototype.setID = function(variable) {    
    this.ID.text = variable;        //from this line we can deduce the ID isn't an int (as intuituion might point to), but a String and the clip must contain a Dynamic TextField named ID 
}; 

AAAAClass.prototype.setStatus = function(variable) { 
    this.Status.text = variable;       //from this line we can deduce the Statusi is also a String and the clip must contain a Dynamic TextField named Status 
    this.Status._visible = false; 
}; 

Object.registerClass("AAAA", AAAAClass); // Compiler shows error at this statement 

dies einem als 3,0 Klasse wie folgt extrapoliert werden kann

Beachten Sie die auskommentierten TextFields? Ich bin nicht in der Lage, die Struktur zu erraten, aber meine Vermutung ist, dass es in Ihrem as 2.0-Projekt einen MovieClip in den Bibliotheken gibt, die mit der AAAAClass verbunden sind, die zwei TextFields hat: ID und Status.

Es gibt eine Menge zu bedecken in Bezug auf as3 und Migration von as2 nach as3. Ich empfehle Trevor McCauley's Getting Started with ActionScript 3.0 in Adobe Flash CS3 erschöpfenden Artikel und Dan Carr's Migrating from ActionScript 2 to ActionScript 3: Key concepts and changes Artikel.

Wenn Sie neu bei as3 sind, werden Sie wahrscheinlich die in den Artikeln in minimalen neuen Flash-Projekten erläuterten Konzepte anwenden, damit alles einfach und leicht verdaulich ist. Gehen Sie dann zurück zu Ihrem Projekt und wenden Sie an, was Sie gelernt haben.

Verwandte Themen