Перевод кода из Actionscript 2 в Actionscript 3 - PullRequest
0 голосов
/ 27 октября 2011

У меня есть небольшой фрагмент кода, полученный от друга, но я не могу перевести его на работающий 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);
};

1 Ответ

2 голосов
/ 27 октября 2011

Здесь много вопросов.Некоторые из них синтаксические, где другие требуют новых методов.

, например:

  • _root не существует в AS3.В AS3 оно становится: MovieClip(root)

  • attachMovie недоступно в AS3, вам придется заменить его вызовом конструктора, например var node = new laser(); ...

  • onPress и onRelease не поддерживаются в AS3.вам нужно разобраться с использованием addEventListener w / MouseEvent класса.То же самое с onEnterFrame (Event.ENTER_FRAME)

  • createEmptyMovieClip() становится new MovieClip();

  • команды графического рисования в AS3 теперь вложеныв graphics объекте Sprites.

Похоже, вам нужно немного покопаться в AS3 для этого.Это не очень простой код для преобразования.

...