Actionscript 2-ден Actioncript 3-ге кодты аудару

Менің досымнан алған осы кішкене код бөлігім бар, бірақ мен оны AS3.0 жұмысына аудара алмаймын. Мен не өзгеретін болсам да, компилятор қателерін аламын. Бұл кодтың түпнұсқа бөлімі және сіз оны көргеніңізді шынымен бағалайтын болар едім.

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
Сондай-ақ, сіз әлі күнге дейін жасаған Actionscript 3 кодын орналастырсаңыз көмектеседі.
қосылды автор jedd.ahyoung, көзі
Сіз өзіңіз алған нақты компиляторлық қателерді жіберсеңіз көмектесе алады.
қосылды автор sean, көзі

1 жауаптар

Мұнда көптеген мәселелер бар. Кейбіреулер синтаксистік болып келеді, ал басқалары жаңа әдістерді талап етеді.

мысалы:

  • _root AS3-де жоқ. AS3-де ол: MovieClip (root)

  • болады
  • attachMovie AS3-те қол жетімді емес, оны var node = new laser() сияқты конструкторлық шақыруымен ауыстыруға тура келеді; ...

  • onPress және onRelease кері шақыруларына AS3 бағдарламасында қолдау көрсетілмейді. addEventListener / MouseEvent класын пайдалану керек. onEnterFrame ( Event.ENTER_FRAME ) көмегімен

  • createEmptyMovieClip() - жаңа MovieClip ();

  • AS3-дегі сызбалық сызба пәрмендері Sprites graphics нысанына кірістірілген.

Бұл үшін AS3-ге кішкене кіріп шығу керек сияқты. Бұл айырбастауға арналған кодтың өте қарапайым фрагменті емес.

2
қосылды