Code vertalen van Actionscript 2 naar Actionscript 3

Ik heb dit kleine stukje code dat ik van een vriend heb gekregen, maar het lukt me niet om het te vertalen naar werken met AS3.0. Ik krijg steeds compilerfouten, ongeacht wat ik verander. Dit is het originele stukje code en ik zou het erg op prijs stellen als je er naar kijkt.

laser_nodes = 2;
for (var x=1; x<=laser_nodes; x++) {
    node = _root.attachMovie("laser", "laser_"+x, x, {_x:Math.random()*460+20, _y:Math.random()*310+20});
    node.onPress = function() {
        startDrag(this);
    };
    node.onRelease = function() {
        stopDrag();
    };
}

_root.createEmptyMovieClip("ray", _root.getNextHighestDepth());

ray.onEnterFrame = function() {
    this.clear();
    this.lineStyle(3, 0xff0000);
    this.moveTo(_root.laser_1._x, _root.laser_1._y);
    for (x=2; x<=laser_nodes; x++) {
        this.lineTo(_root["laser_"+x]._x, _root["laser_"+x]._y);
    }
    this.lineTo(_root.laser_1._x, _root.laser_1._y);
};
0
Het zou ook helpen als je de Actionscript 3-code publiceert die je tot nu toe hebt gemaakt.
toegevoegd de auteur jedd.ahyoung, de bron
Het zou helpen als u de specifieke compilerfouten plaatst die u krijgt.
toegevoegd de auteur sean, de bron

1 antwoord

Er zijn veel problemen hier. Sommige zijn syntactisch, waar anderen nieuwe methoden vereisen.

bijvoorbeeld:

  • _root bestaat niet in AS3. In AS3 wordt het: MovieClip (root)

  • attachMovie is niet beschikbaar in AS3, je zult het moeten vervangen door een constructor call zoals var node = new laser (); ...

  • onPress en onRelease callbacks worden niet ondersteund in AS3. u moet kijken in de klasse addEventListener w/de MouseEvent . Hetzelfde met onEnterFrame ( Event.ENTER_FRAME )

  • createEmptyMovieClip() wordt new MovieClip ();

  • de grafische tekeningopdrachten in AS3 zijn nu genest in het graphics -object van Sprites.

Het lijkt erop dat je hiervoor een beetje naar AS3 moet graven. Het is niet een heel eenvoudig stukje code om te zetten.

2
toegevoegd