#flash #actionscript-3 #actionscript-2 #translation
#flash #actionscript-3 #actionscript-2 #перевод
Вопрос:
У меня есть этот небольшой фрагмент кода, который я получил от друга, но мне не удается перевести его в режим работы 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. Также было бы полезно опубликовать созданный вами код Actionscript 3.
Ответ №1:
Здесь много проблем. Некоторые из них синтаксические, тогда как другие требуют новых методов.
например:
_root
не существует в AS3. В AS3 это становится:MovieClip(root)
attachMovie
недоступен в AS3, вам придется заменить его вызовом конструктора, напримерvar node = new laser(); ...
onPress
иonRelease
обратные вызовы не поддерживаются в AS3. вам нужно изучить возможность использованияaddEventListener
w / theMouseEvent
class. То же самое сonEnterFrame
(Event.ENTER_FRAME
)createEmptyMovieClip()
становитсяnew MovieClip();
- команды рисования графики в AS3 теперь вложены в
graphics
объект спрайтов.
Похоже, для этого вам нужно немного покопаться в AS3. Это не очень простой фрагмент кода для преобразования.